Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/26: Рейтинг темы: голосов - 26, средняя оценка - 4.85
0 / 0 / 1
Регистрация: 01.10.2012
Сообщений: 71
1

Не могу создать новые листы Excel

25.06.2013, 13:34. Показов 5427. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В общем у меня есть процедура, которая в добавок ко всему создает новый лист excel (если это требуется) и переносит туда данные. Ругается на первую же строчку в коде, указанном ниже:
Код
// Создаем новый лист
      if ExBook.Worksheets.Count >= (SegNum + 1) then
        ExSheet := ExBook.Worksheets[SegNum+1]
      else
        ExSheet := ExBook.Worksheets.Add(After:=ExSheet);
Ошибка следующая:
Код
Project Practice_2.exe raised exception class EVariantInvalidOpError with message 'Invalid vareint operator'. Process stoped. Use Step or Run to continue.
Кто подскажет, в чем дело? Код создание листа по данному принципу я взял из интернета, немного подогнав под себя, поэтому мне не понятно, в чем ошибка!

Добавлено через 22 часа 5 минут
Кто-нибудь знает, в чем может быть дело? Подскажите пожалуйста, а то у меня работа застопорилась на этом
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.06.2013, 13:34
Ответы с готовыми решениями:

Создать новые листы по кол-ву элементов в массиве
Нужно добавить в книгу листы, по кол-ву элементов в массиве . И дать названия листу, соответвующее...

Создать листы с названиями из списка (Excel)
Подскажите пожалуйста, как создать листы с названиями из списка? Причем список в одной книге, а...

По содержимому столбца создать листы и в эти листы скопировать соответствующие строки
Здравствуйте, уважаемые Форумчане!!! Есть задачка: В прикреплённом файле есть табличка. Надо по...

Excel: Как создать ссылку не перечисляя все листы, а сделать с этого листа по (в формуле)
Excel: Как создать сылку не перечисляя все листы, а сделать с этого листа по какой то(в формуле,...

5
0 / 0 / 0
Регистрация: 25.06.2013
Сообщений: 4
25.06.2013, 14:10 2
Delphi
1
2
3
xlsWB.Sheets.Add;
xlsWB.Sheets[xlsWB.ActiveSheet.Name].Move (After := xlsWB.Sheets[xlsWB.Sheets.Count]);
xlsWB.Sheets[xlsWB.Sheets.Count].Name :=cSubParam[integer(spStatement)];
Я у себя делал так... это кусочек добавление листа
0
0 / 0 / 1
Регистрация: 01.10.2012
Сообщений: 71
25.06.2013, 14:48  [ТС] 3
@nimp, Если листы просто добавлять, они будут ссумироватся при каждом выполнении программы, а я хочу сделать это с обновлением листов, т.е. если у меня уже есть второй лист, то не создать лист, а работать со вторым. SegNum - это счетчик листов, с кодом, представленным ниже, он изначально равен двум:
Код
// Создаем новый лист
      if ExBook.worksheets.Count >= SegNum then
        ExSheet := ExBook.Worksheets[SegNum]
      else
        ExSheet := ExBook.Worksheets.Add(After:=ExSheet);
// Далее идет заполнение листа, я опущу этот код...
SegNum := SegNum + 1;
А если SegNum больше, чем количество листов, то программа просто создает лист. Но из-за ошибки, представленной в начале темы, этого не происходит! Мне нужно понять причину ошибки, что я сделал не так?
0
0 / 0 / 0
Регистрация: 25.06.2013
Сообщений: 4
25.06.2013, 14:56 4
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var
  ExApp, ExBook, ExSheet: Variant;
  SegNum: integer;
begin
  ExApp := CreateOleObject('Excel.Application');
  ExBook := ExApp.Application.WorkBooks.Add();
  ExSheet := ExBook.Sheets[1];
 
  ExApp.Visible := true;
 
  SegNum := 4;
  if ExBook.worksheets.Count >= SegNum then
    ExSheet := ExBook.Worksheets[SegNum]
  else
    ExSheet := ExBook.Worksheets.Add(After:=ExSheet);
А ты уверен что ошибка в добавлении? Тот код что я наверху написал у меня работает.
Какой дельф и офис?
0
0 / 0 / 1
Регистрация: 01.10.2012
Сообщений: 71
25.06.2013, 15:18  [ТС] 5
@nimp, дельф 7, офис 2003, должны работать. Попробуй сегнам указать 2
0
0 / 0 / 0
Регистрация: 25.06.2013
Сообщений: 4
25.06.2013, 15:27 6
Цитата Сообщение от ULTIMITE Посмотреть сообщение
@nimp, дельф 7, офис 2003, должны работать. Попробуй сегнам указать 2
Пробовал, все фурычит... Вот вложение...
Вложения
Тип файла: rar 7.rar (211.2 Кб, 28 просмотров)
0
25.06.2013, 15:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.06.2013, 15:27
Помогаю со студенческими работами здесь

Вывод данных в массивы на новые листы
Доброго времени суток! У меня есть код, написанный для скрытия строк с одинаковыми названиями....

Новые листы в одном окне [Delphi 7]
Ребят, нужна помощь, как сделать так чтобы можно было создавать 2 листа и больше и чтобы выглядели...

создать в книге excel листы с разделами + и - ...! Чтобы можно было открывать и закрывать строки с разделами
Привет :)! Помогите пожалуйста создать в книге excel листы с разделами + и - :)...! Чтобы можно...

Как сделать автоматическую сортировку в новые листы по специалистам и ФИО заявителей?
каждый день приходиться обрабатывать по 100 заявлений, реестр приходит в формате Ехсеl. 4...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru