【问题标题】:Run Time error 9运行时错误 9
【发布时间】:2013-08-13 23:43:58
【问题描述】:

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

【问题讨论】:

  • 从 NewName 中删除 ",所以它显示为 Set WSD3 = Workbooks(NewName),告诉我这是否有帮助
  • set WSD3 = workbooks.add 然后WSD3.SaveAs NewName,您可能希望在保存新工作簿时包含路径

标签: excel runtime-error vba


【解决方案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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多