運行時錯誤 9 訂閱超出範圍:如何修復
在 Microsoft Excel 中的 Visual Basic 中的某些情況下,會出現錯誤訊息「執行階段錯誤 9 」。儘管此錯誤的主要原因是主要基本程式碼中的範圍問題,但在某些情況下您可能會面臨這種困境。在本指南中,我們討論了您可能遇到此錯誤的所有可能的解決方案以及如何解決此問題。
修復 1 – 檢查程式碼中提到的範圍
當程式碼中斷言的範圍配置錯誤時,會出現「運行時錯誤 9 」。因此,在這種情況下,請檢查程式碼中提到的變數範圍。
例子–
Sub Newfunction()
Dim Array() 為變體
數組(1)=“零”
結束子
正如您在程式碼中看到的,數組被聲明為變體,但沒有任何適當的範圍。這就是原因,當您在 VB 編輯器中執行此程式碼時,您將收到下標錯誤。
只需更改程式碼中的範圍,就可以了。
修復 2 – 調整工作表名稱
如果您同時使用多個工作表,則程式碼中顯示的工作表名稱可能是錯誤的。
例子–
Sub CommandButton1_Click()
工作表(“工作表”).範圍(“A1:D5”).選擇
選擇.複製
工作表(“Sheet1”).激活
工作表(“Sheet1”).範圍(“A1:D5”).Select
ActiveSheet.Paste
應用程式.CutCopyMode = False
結束子
如您所看到的,在執行上述 VBA 程式碼後,Excel 將向您提供錯誤代碼 9 下標超出範圍。原因是所提到的工作簿的範圍是 Sheet ,並且操作是在 Sheet 1 上完成的,而不是在Sheet 2上完成的。
現在,你可以這樣做——
步驟1 –只需右鍵點選工作表,然後點選「重新命名」即可重新命名工作表。
步驟 2 – 更正工作簿的名稱。
或者,
你可以這樣重新調整程式碼 –
Sub CommandButton1_Click()
工作表(“工作表”).範圍(“A1:D5”).選擇
選擇.複製
工作表(“Sheet2”).激活
工作表(“Sheet2”)。範圍(“A1:D5”)。選擇
ActiveSheet.Paste
應用程式.CutCopyMode = False
結束子
運行此程式碼,您將不會再遇到任何下標範圍問題。
修復 3 – 啟用宏
如果 VBA 腳本使用任何巨集模組且您尚未啟用它們,則啟用巨集應該可以協助您解決問題。
步驟 1 –前往Excel工作簿並點選「檔案」選單。
步驟 2 –這次,點選左側功能區中的「選項」功能表。
步驟 3 –您必須找到並開啟「信任中心」標籤。
步驟 4 –在右側窗格中,按一下開啟「信任中心設定」選項。
第5步-這裡有很多選擇。選擇開啟“巨集”標籤。
步驟 6 –現在,根據程式碼中的巨集設置,開啟這些選項中的任何一個 –
Disable all macros except digitally signed macros
啟用所有巨集(不建議:可能運行有潛在危險的程式碼)
步驟 7 –點選「確定」將變更儲存在 Excel 中。
現在,在 Excel 中儲存這些變更後,您可以再次執行 VB 程式碼。
修復 4 – 逐步偵錯程式碼
就像其他終端機一樣,Visual Basic 模組也有一個偵錯工具。使用這些來排除程式碼故障。
步驟 1 –開啟MS Excel頁面後,前往「開發人員」標籤。
步驟 2 –接下來,點選第一個選項「Visual Basic」。
步驟 3 –開啟 Visual Basic 控制台後,選擇具有可疑值的步驟。
步驟 4 –之後,打開「偵錯」功能表並使用那裡的工具找出導致此下標錯誤的錯誤。
現在,您可以自己測試程式碼。
修復 5 – 開啟並修復 Excel 文件
電子表格本身可能已損壞。因此,您應該修復並開啟 Excel 文件。
第 1 步 –在 MS Excel 應用程式中儲存變更。
步驟 2 –單獨啟動Microsoft Excel應用程式。
步驟 3 –這次,點選第一個選單「檔案」。
步驟4 –接下來,往這邊走 –
Open > Browse
步驟 5 –下一步是手動前往 Excel 檔案的位置。
步驟 6 –接下來,選擇其中的檔案。
步驟 7 –最後,從清單中將底部選項切換為「開啟並修復」。
載入 Excel 檔案後,您終於可以執行 Visual Basic 程式碼,不再有任何問題。
發佈留言