當我運行以下代碼時,出現'Subscript Out of Range'錯誤:調試指向我的最後一行:運行時錯誤'9'VBA
Dim SrcBook As Workbook
Dim TrgBook As Workbook
Dim SrcSheet As Worksheet
Dim TrgSheet As Worksheet
Dim Sheet_Name As String
Workbooks.Open (CalendarFile)
Sheet_Name = MonthName(Month(SrcSheet.Cells(SrcRow, "D").Value), False)
MsgBox ("Sheet_Name Value is: " & Sheet_Name)
Set TrgSheet = Workbooks(CalendarFile).Worksheets(Sheet_Name)
我已多次驗證CalendarFile是一個有效的文件名(我使用完整的路徑文件名)。 Sheet_Name也是該工作簿中工作表的有效名稱。如果我嘗試通過數字索引[即Workbooks(CalendarFile).Worksheets(11)vs Workbooks(CalendarFile).Worksheets(November)]訪問工作表,我會得到類似的錯誤。 MsgBox調用將驗證我是否將WorkSheets()方法提供給適當的工作表名稱。
最後,ScrRow被正確定義 - 我可以使用此代碼來操作與玩具/測試應用程序中的宏調用相同WorkBook中的目標WorkSheets,但由於某些原因,當我嘗試操作時它失敗在其他(打開)工作簿中的目標WorkSheets。
任何幫助將不勝感激!謝謝!
Sheet_Name應該是'Range'而不是字符串。 – Niclas
@Niclas爲什麼它會是一個範圍? MonthName返回一個字符串。 – Sorceri