![]() |
|
|
![]()
|
|
| Platov |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 23.7.2009 Репутация: 2 Всего: 2 |
Работаю с Excel и столкнулся с неожиданной проблемой.
Ребята, помогите перевести добавление нового листа за последним листом. на VBA это выглядит следующим образом:
вторая часть проблем не вызвала:
А вот первая |
||||
|
|||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
В С++ ActiveX нет позиционных аргументов (а After:= - это именно он и есть). Так что передавайте в ActiveWorkbook.Sheets.Add все аргументы (вплоть до аргумента After) со значениями по умолчанию (их можно посмотреть в хелпе по VBA в Excel'е)
|
|||
|
||||
| Usper |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 13.4.2007 Репутация: 15 Всего: 15 |
В качестве After`а можно передать нужную страницу:
-------------------- На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник. |
|||
|
||||
| Platov |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 23.7.2009 Репутация: 2 Всего: 2 |
Спасибо.
С помощью
у меня получилось добавить новый лист только предпоследним. |
|||
|
||||
| Usper |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 13.4.2007 Репутация: 15 Всего: 15 |
Хм... у меня всё работает. У вас какая версия офиса? Весь код, касающийся экспорта в Excel, приведите пожалуйста.
-------------------- На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник. |
|||
|
||||
| Platov |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 23.7.2009 Репутация: 2 Всего: 2 |
Офис у меня 2003
вот пример того что я делаю. Присоединённый файл ( Кол-во скачиваний: 9 )
AddSheet.rar 275,72 Kb |
|||
|
||||
| Usper |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 13.4.2007 Репутация: 15 Всего: 15 |
Ну дык:
а где второй параметр? Вполне возможно Excel, видя только один параметр метода "Add" воспринимает его как страницу перед которой надо воткнуть новую. Как писАл xvr просто так опускать параметры не допускается. Это сообщение отредактировал(а) Usper - 27.6.2011, 20:09 -------------------- На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник. |
|||
|
||||
| Platov |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 23.7.2009 Репутация: 2 Всего: 2 |
||||
|
||||
| Usper |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 13.4.2007 Репутация: 15 Всего: 15 |
Что значит не работает? У вас в проекте я не вижу подключенного модуля olectrls.hpp. Без этого модуля среда будет ругаться на EmptyParam.
Свой проект прилагаю. З.Ы. хотя этот модуль нужен в шестом билдере, нужен ли он в более новых я не знаю. Это сообщение отредактировал(а) Usper - 28.6.2011, 09:18 Присоединённый файл ( Кол-во скачиваний: 6 )
megadelmeproject.zip 252,59 Kb-------------------- На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник. |
|||
|
||||
| Platov |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 23.7.2009 Репутация: 2 Всего: 2 |
если компилировать в 2009ом то выполнение Sheets.OleFunction("Add",EmptyParam, Aft); приводит к ошибке.
а вот программа откомпилированная в 6ом работает без ошибки. Возможно мне это не победить. И придётся вставлять листы не в конец как планировалось а в начало. |
|||
|
||||
| Usper |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 13.4.2007 Репутация: 15 Всего: 15 |
Какая ошибка то?
Интернеты, кстати, говорят, что в 2009 билдере есть проблема с EmptyParam. Билдеровская справка что-нибудь знает про EmptyParam? Это сообщение отредактировал(а) Usper - 28.6.2011, 13:58 -------------------- На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник. |
|||
|
||||
| Platov |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 23.7.2009 Репутация: 2 Всего: 2 |
Ошибка очень интересная
"Ошибка" |
|||
|
||||
| Usper |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 13.4.2007 Репутация: 15 Всего: 15 |
А если написать так:
(EmptyParam это вроде функция теперь). -------------------- На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник. |
|||
|
||||
| Platov |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 23.7.2009 Репутация: 2 Всего: 2 |
УРА. Надо было сразу исходник почитать. И вправду функция! Usper - большое спасибо. |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |