尝试从不同工作簿的数据创建图表时出现运行时错误 9

Runtime error 9 when trying to create a chart from a different Workbooks' data

Private Sub CommandButton1_Click()

Dim wkb As Excel.Workbook
Dim wks As Excel.Worksheet
Set wkb = Workbooks("asd.xlsx")
Set wks = wkb.Worksheets("Sheet1")

Sheets("Sheet1").Shapes.AddChart.Chart.SetSourceData Source:=wks.Range("A1:B98")

End Sub

这是我编写的代码,用于在我当前的工作簿中创建一个简单的图表,其中包含来自同一文件夹中另一个工作簿的数据。即使相对路径与程序 returns 运行时错误 9 相同,它表示我正在引用一个不存在的文件。我什至尝试将绝对路径放入 wkb 变量,但在那里也不起作用。

有什么帮助吗? TIA.

所以,我 运行 解决这个问题的主要原因是 Excel 在绘制图表时需要打开其他工作簿以及要在其中放置图表的工作簿绘制为活动。所以我修改了代码以打开其他工作簿,使我正在绘制图形的工作簿处于活动状态,绘制 然后关闭图形。

target_workbook.xlsm是要绘制图表的工作簿,asd.xlsx是包含数据的工作簿。

Private Sub CommandButton1_Click()
Dim wb As Workbook
Dim ws As Worksheet
Dim rng As Range

Workbooks.Open "C:\full_path_to_file\asd.xlsx"
Workbooks("target_workbook.xlsm").Activate

Set wb = Workbooks("asd.xlsx")
Set ws = wb.Worksheets("Sheet ABC")
Set rng = ws.Range("F3:F98,H3:H98")

MsgBox ("Test-1!")
Set chrt = Sheets("Sheet1").ChartObjects.Add(Left:=5, Width:=600, Top:=7, Height:=350)
chrt.Chart.SetSourceData Source:=rng
chrt.Chart.ChartType = xlLine
MsgBox ("test-2")

Workbooks("asd").Close SaveChanges:=False
End Sub