Проблема с добавлением кода события на вновь созданный лист - PullRequest
0 голосов
/ 23 июня 2011

У меня проблема с добавлением кода события во вновь созданный лист.

Кажется, проблема возникает только после того, как я открываю книгу Excel.Я использую

Dim codemod As Object
codemod = ActiveWorkbook.VBProject.VBComponents(Worksheets("Sheet4").CodeName).CodeModule 

для добавления кода в созданный модуль листа, но когда я пытаюсь запустить этот код сразу после открытия книги Excel, он выдает мне ошибку: ошибка времени выполнения '9' Подстрочный индекс изспектр.Отладка указывает на строку кода.

Странная часть заключается в том, что эта ошибка больше не возникает, когда я чуть-чуть меняю код и затем возвращаю его в исходное состояние.После того, как я это сделаю, код запускается так, как должен, т.е. вставляет код во вновь созданный лист.

Кто-нибудь понял, в чем может быть проблема?

В коде нет ничего другого, кроме вставки строк, но это, похоже, не проблема.

Заранее спасибо

1 Ответ

0 голосов
/ 27 июня 2011

(Это мое первое действие на SO, поэтому, пожалуйста, не кричите на меня, когда я делаю что-то не так.)

Вы подготовили рабочую книгу + лист с нужным кодом события (Test1.XLS-Лист1).Затем в целевой книге (Test2.xls) скопируйте этот подготовленный лист.Код в целевой книге будет выглядеть так:

Sub Demo1()
  Workbooks.Open "Test1.xls"
  Sheets("Sheet1").Copy After:=Workbooks("Test2.xls"). _
     Sheets(Workbooks("Test2.xls").Worksheets.Count)
  Workbooks("Test2.xls").Activate
End Sub

Это, очевидно, обходной путь, но он работает мгновенно.

Второй вариант может заключаться в подготовке «книги с одним листом».'и сохраните его как (лист) шаблон в D: \ Documents and Settings \ Пользователь \ Данные приложения \ Microsoft \ Excel \ XLSTART.В этом случае код может быть

Sub Demo2()
  Sheets.Add Type:="Test1"
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...