我创建了一个名为“AirHours”的工作簿。来自另一个工作簿的日期。我希望在整个项目中使用此工作簿。下面的代码工作,但我不断得到一个运行时错误9“下标超出范围”。
我正在尝试为我的报告创建一个工作簿,并使我的数据保持原始状态。新工作簿将用于许多模块。运行时错误似乎发生在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
答案 0 :(得分:1)
打开它时将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
答案 1 :(得分:0)
除了scott的建议外,部分问题是当使用Workbooks引用工作簿(“workbookname.ext”)时,您需要提供扩展名,例如.xls或.xlsm,因此您需要更新您所在的位置引用Workbooks("AirTimeWorkBookBeta")
以包含该工作簿的适当扩展名。
如果在运行宏时该工作簿当前未打开,您也可能会收到错误。 此外,请确保该工作簿包含名为Data
的工作表