我已经创建了一个名为"AirHours“的工作簿&来自另一个工作簿的日期。我想在整个项目中使用此工作簿。下面的代码可以工作,但我一直收到运行时错误9 "Subscript out of range“。
我正在尝试为我的报表创建一个工作簿,并使我的数据保持其原始形式。新的工作簿将在许多模块中使用。运行时错误似乎发生在SET WSD3=Workbook上。
也许我在创建公共工作簿时走错了路。谢谢你的帮助。
Option Explicit
Public WSD3 As Workbook
Public Sub addNewWorkBook()
Dim NewName As String
Application.DisplayAlerts = False
NewName = "AirHours" & Workbooks("AirTimeWorkBookBeta").Worksheets("Data").Cells(2, 1).Value
Workbooks.Add
ActiveWorkbook.SaveAs NewName
Set WSD3 = Workbooks("NewName")
End Sub发布于 2013-08-13 23:11:11
打开新工作簿时将WSD3设置为该工作簿
Option Explicit
Public WSD3 As Workbook
Public Sub addNewWorkBook()
Dim NewName As String
Application.DisplayAlerts = False
NewName = "AirHours" & Workbooks("AirTimeWorkBookBeta").Worksheets("Data").Cells(2, 1).Value
Set WSD3 = Workbooks.Add
WSD3.SaveAs NewName
End Sub发布于 2013-08-13 23:43:59
除了斯科特的建议,部分问题是,当引用带有工作簿(“workbookname.ext”)的工作簿时,您需要提供扩展名,如.xls或.xlsm,因此您需要更新引用Workbooks("AirTimeWorkBookBeta")的位置,以包括该工作簿的适当扩展名。
如果运行宏时该工作簿当前未打开,也可能会出现错误。此外,请确保工作簿包含名为Data的工作表
https://stackoverflow.com/questions/18212294
复制相似问题