使用多个工作簿时出现Excel VBA运行时错误

时间:2017-02-05 11:04:33

标签: excel-vba vba excel

我有以下代码

Sub ImportSolarData()

Dim Year As Integer
Dim DataBookName As Variant

Dim SourceSheet As Worksheet
Dim SourceBook As Workbook
Dim SourceSheetName As String

Dim TargetBook As Workbook
Dim TargetSheet As Worksheet
Dim TargetSheetName As String

DataBookName = Application.GetOpenFilename

If DataBookName = False Then
    MsgBox ("You pressed cancel")
    GoTo LeaveNow
End If

MsgBox (DataBookName)

Year = InputBox("Enter the Year you wish to Import")
SourceSheetName = Str(Year)

Workbooks.Open Filename:=DataBookName
MsgBox ActiveWorkbook.Name, , "Active Workbook Name"
MsgBox SourceSheetName, , "Source Sheet Name"

Sheets(SourceSheetName).Select

LeaveNow:

End Sub

代码落在最后一行 - 错误

  

运行时错误' -2147352565(8002000b)':指定的维度对当前图表类型无效。

但我在框架中没有任何一张图表 - 任何地方。我没有一个,没有尝试创建一个,而且活动工作簿根本没有任何图表。

任何人都有任何想法 - 这毁了我的周末! (在OSX Sierra上运行Excel 365)

1 个答案:

答案 0 :(得分:0)

用以下代码替换最后几行代码。由于某种原因,您的输入框会在4位数之前放置一个前导空格。本质上,它正在寻找名为" 2015"当工作表的名称实际上是" 2015" - 没有领先的空间。 trim()函数可以纠正这个问题。其次,您没有设置工作簿或在最终选择命令中引用它。

除此之外,它看起来很好。

Set SourceBook = Workbooks.Open(DataBookName, True, True)
MsgBox ActiveWorkbook.Name, , "Active Workbook Name"
MsgBox SourceSheetName, , "Source Sheet Name"

SourceBook.Worksheets(Trim(SourceSheetName)).Select