当我运行以下代码时,出现'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