1 / 1 / 1
Регистрация: 13.12.2014
Сообщений: 19
1

Переставить листы в Excel

18.01.2017, 21:26. Показов 1469. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем здрасте.
Хотел поменять в экселе листы местами (3-й с 4-м), но возникла проблема:
C++
1
2
3
4
5
         item = knigi.OlePropertyGet("Item", 1).OlePropertyGet("WorkSheets");
         list2 = item.OlePropertyGet("Item", 2);
         list3 = item.OlePropertyGet("Item", 3);
         list4 = item.OlePropertyGet("Item", 4);
         list4.OleProcedure("Move", list3, list2);
Builder 6 на последней строчке выдаёт ошибку E2247.
Кто- нибудь может сказать, чего она мне мозг конопатит? Как это можно устранить? Или есть ли другой способ поменять листы местами?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.01.2017, 21:26
Ответы с готовыми решениями:

Копировать одноименные листы из файлов Excel в один файл Excel
nshardarbekov@mail.ru Добрый день, уважаемые! Помогите пожалуйста создать макрос, для того чтобы...

Копировать листы из файлов Excel в один файл Excel
Добрый день, господа! Помогите создать макрос, для того чтобы собрать(скопировать) листы из разных...

Перенос данных excel -excel на разные листы
Доброго времени суток. Возникла небольшая проблема: Переношу данные из книги в книгу, но в каждой...

Листы Excel в C#
Подскажите пожалуйста, может кто-то знает, как менять название листов в Excel из C#. Тоесть нужно...

3
1 / 1 / 1
Регистрация: 13.12.2014
Сообщений: 19
19.01.2017, 23:09  [ТС] 2
Специально, чтобы избавиться от этой ошибки, установил Builder XE, перелопатил программу, и ... выдаёт ровно ту-же самую ошибку.
0
Модератор
3382 / 2154 / 352
Регистрация: 13.01.2012
Сообщений: 8,364
20.01.2017, 06:32 3
Romi_k, в ВБА этот код пробовали?
0
1 / 1 / 1
Регистрация: 13.12.2014
Сообщений: 19
20.01.2017, 12:24  [ТС] 4
Лучший ответ Сообщение было отмечено vxg как решение

Решение

Нет, не пробовал
Но дело сдвинулось. Я поменял тип переменной list2 - list4 с "OleVariant" на просто "Variant". Строитель перестал мозги полоскать, но теперь во время работы вылазит ошибка "OleSysError" на последней строчке.

Добавлено через 46 минут
Короче, всё заработало.
Поменял последнюю строчку на
C++
1
list3.OleProcedure("Move", EmptyParam, list4);
и готово дело.
Правда, работает почему-то только с "EmptyParam".
Если, например, нужно поменять местами 2-ю и 3-ю строчку, то вот так не работает:
C++
1
list2.OleProcedure("Move", list4, list3);
а вот так - пожалуйста:
C++
1
list2.OleProcedure("Move", EmptyParam, list3);
1
20.01.2017, 12:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.01.2017, 12:24
Помогаю со студенческими работами здесь

StringGrid и Excel листы
Как добавить лист в excel в конец книги? for i:=4 to 12 do Workbook.Sheets.Add;...

Защищённые листы в Excel
Доброго времени суток товарищи! Подключаюсь через ADO к Excel такой строкой подключения: string...

Объединить листы excel в один
Доброе время суток! Еще раз нуждаюсь в вашей помощи! Нужен макрос для объединение разных таблиц...

Не могу создать новые листы Excel
В общем у меня есть процедура, которая в добавок ко всему создает новый лист excel (если это...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru