我有一个Excel 2010电子表格,用于维护使用Selenium WebDriver编写的自动化测试应用程序的测试。电子表格有6个ActiveX按钮,用于上传(到数据库),导入(从另一个工作表),清除所有工作表,导出(到另一个工作表),合并(两个工作表)和还原(从数据库中测试套件)。我的问题似乎源于选择导入按钮时运行的宏
宏需要两张(源和目标),清除目标表并将单元格和数据从源工作簿复制到目标工作簿中的相应工作表。从那里,它可以上传到数据库,也可以由测试应用程序从工作表中运行
几周前,当选择导入按钮Excel崩溃时。我在网上看到了一个有效的解决方案。它涉及禁用所有宏,关闭信任文档和受信任位置,重新编译和重新打开工作簿。这工作了几个星期,直到上周末同样的事情再次发生,修复工作不再有效。
这是我的代码:
numSheets = wrkBook.Sheets.Count
appName = wrkSheet.Cells(2, 3).Value
bkPath = Application.GetOpenFilename("Excel Macro-Enabled Workbook (*.xlsm),*.xlsm")
If bkPath <> "False" Then
Call Clear_All(wrkBook, wrkSheet)
'get the number of sheets in the source workbook
destCnt = wrkBook.Sheets.Count
Set importBook = Workbooks.Open(bkPath)
For a = 1 To destCnt
thsShtName = wrkBook.Worksheets(a).Name
'activate the source workbook
importBook.Activate
'get the numer of sheets in the source workbook
srcCnt = importBook.Sheets.Count
'loop through each sheet checking title
For b = 1 To srcCnt
'get the name of the 'a' sheet
**srcSheetName = importBook.Worksheets(b).Name**
'do more stuff with the source sheet
Next b
Next a
End If
代码在以下行崩溃 srcSheetName = importBook.Worksheets(b).Name
以下是我注意到的一些事情。一旦设置了importBook变量,即使代码没有到达违规行,我也无法在监视窗口中展开变量。但是,宏将成功获取srcCount(源表上的工作表数)。一旦宏到达违规行,它就会一直崩溃,并且只是说明Excel遇到错误并需要关闭。没有信息,Excel关闭,有时重新启动到空白工作簿
答案 0 :(得分:0)
好的......在听完Siddarth Rout关于腐败电子表格的建议后,我自己想出了这个。我采取了上面描述的步骤
所以这就是我所做的。
我复制了其他一个电子表格并将其清除。一旦我运行了导入宏,它就会通过之前失败的行,因此腐败似乎就是问题所在。然后我逐步完成了原始代码并重写了Import宏以简化其中的代码。它现在似乎工作得很好
感谢您的建议!!