excel - 尝试从不同工作簿的数据创建图表时出现运行时错误 9
问题描述
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
这是我编写的代码,用于在我当前的工作簿中创建一个简单的图表,其中包含来自同一文件夹中另一个工作簿的数据。即使相对路径相同,程序也会返回运行时错误 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
推荐阅读
- rust - 匹配表达式中的“预期类型`()`”是什么意思?
- ios - 将两个以上的参数传递给由字符串组成的选择器
- python - 如何在不使用 for 循环的情况下遍历图像中的所有像素并将它们的 RGB 值与另一个 RGB 值进行比较?
- machine-learning - ValueError:发现样本数量不一致的输入变量:[25707, 25000]
- python - 在 Python 应用程序中实现特定于站点的插件
- django - Django 模型的编辑时间有限
- wordpress - 发布新产品时在 wordpress 中创建新帖子
- javascript - 将 RabbitMQ 缓冲区发送到 Websocket 时,如何修复“无法将文本帧解码为 UTF-8。”?
- three.js - 为什么透明度在我的网格上不起作用?
- cassandra - cassandra 中的 generate_series() postgresql 等效项