Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 运行时错误9_Excel_Runtime Error_Vba - Fatal编程技术网

Excel 运行时错误9

Excel 运行时错误9,excel,runtime-error,vba,Excel,Runtime Error,Vba,我已经创建了一个名为“airhurs”的工作簿&来自另一个工作簿的日期。我想在整个项目中使用此工作簿。下面的代码可以工作,但我一直收到运行时错误9“下标超出范围” 我正在尝试为报表创建工作簿,并使数据保持原始形式。新工作簿将用于许多模块中。运行时错误似乎发生在SET WSD3=Workbook处 也许我在创建公共工作簿时走错了方向。谢谢你的帮助 Option Explicit Public WSD3 As Workbook Public Sub addNewWorkBook() Dim N

我已经创建了一个名为“airhurs”的工作簿&来自另一个工作簿的日期。我想在整个项目中使用此工作簿。下面的代码可以工作,但我一直收到运行时错误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

打开新工作簿时,将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

除了scott的建议之外,部分问题在于,当使用工作簿(“workbookname.ext”)引用工作簿时,需要提供扩展名,如.xls或.xlsm,因此需要更新引用
工作簿的位置(“AirTimeWorkBookBeta”)
,以包含该工作簿的适当扩展名

如果宏运行时工作簿当前未打开,也可能会出现错误。
此外,请确保工作簿包含名为Data的工作表

从NewName中删除
,这样它会显示
设置WSD3=Workbooks(NewName)
,告诉我这是否有助于
设置WSD3=Workbooks。添加
然后添加
WSD3.SaveAs NewName
此外,保存新工作簿时可能需要包含路径