我在向新创建的工作表添加事件代码时遇到问题。
问题似乎只在我打开Excel工作簿后才会发生。 我用
Dim codemod As Object
codemod = ActiveWorkbook.VBProject.VBComponents(Worksheets("Sheet4").CodeName).CodeModule
将代码添加到创建的工作表模块但是当我尝试在打开Excel工作簿后立即运行此代码时,它给出了一个错误:运行时错误'9'下标超出范围。调试指向codemod行。
奇怪的是,当我稍微更改代码然后将其更改回原始状态时,此错误不再出现。在我这样做之后,代码按原样运行,即将代码插入到新创建的工作表中。
任何人都知道可能是什么问题?
除了插入行之外,代码没有太多其他内容,但这似乎不是问题。
提前致谢
答案 0 :(得分:0)
(这是我对S.O.的第一次行动所以当我做错事时请不要对我大喊大叫。)
您是否使用所需的事件代码(Test1.xls-Sheet1)准备工作簿+工作表。然后,在目标工作簿(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
这显然是一种解决方法,但它可以立即使用。
第二个选项可能是准备'workbook-with-one-sheet'并将其保存为(工作表)模板在D:\ Documents and Settings \ User \ Application Data \ Microsoft \ Excel \ XLSTART中。在这种情况下,代码可以是
Sub Demo2()
Sheets.Add Type:="Test1"
End Sub