我有一個Excel 2010電子表格,用於維護使用Selenium WebDriver編寫的自動化測試應用程序的測試。該電子表格有6個ActiveX按鈕,分別上傳(到數據庫),導入(從另一個工作表),清除所有表格,導出(到另一個工作表),合併(兩個工作表)和還原(從數據庫中的測試套件)。我的問題似乎源於選擇「導入」按鈕時運行的宏VBA宏崩潰Excel 2010
該宏使用兩張工作表(源和目標)清除目標工作表並將單元和數據從源工作簿複製到相應的工作表目的地工作簿。從那裏,它可以上傳到數據庫或由測試應用程序從表單運行
幾個星期前,當選擇導入按鈕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關閉,有時重新啓動到一個空白工作簿
也許文件中您試圖打開的工作表中有一張已損壞?錯誤發生時'b'的值是多少? –
我正在調查通過保存其他人,清除保存的工作表,並從「損壞」工作表中逐一複製所有數據來源表可能會損壞的事實 b = 1(按預期)它擊中失敗的線 –
在該行放置一箇中斷,然後在立即窗口中鍵入'importBook.Name'並同樣檢查是否?importBook.Sheets(1).Name' –