0

我创建了一个名为“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
4

2 回答 2

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
于 2013-08-13T15:11:11.150 回答
0

除了 scott 的建议之外,部分问题是当使用 Workbooks("workbookname.ext") 引用工作簿时,您需要提供扩展名,例如 .xls 或 .xlsm,因此您需要更新引用的位置Workbooks("AirTimeWorkBookBeta")包括该工作簿的适当扩展名。

如果在运行宏时该工作簿当前未打开,您也可能会收到错误消息。此外,确保工作簿包含一个名为 Data

于 2013-08-13T15:43:58.750 回答