运行时错误9通常指的是“Subscript out of range”,意味着在尝试访问数组、集合或某个范围的元素时,索引超出了有效范围。在Excel VBA中,当你尝试从不同的工作簿中创建图表时遇到这个错误,可能是由于以下几个原因:
以下是一个示例代码,展示如何正确地从另一个工作簿中获取数据并创建图表:
Sub CreateChartFromAnotherWorkbook()
Dim wbSource As Workbook
Dim wsSource As Worksheet
Dim wsDest As Worksheet
Dim chrt As Chart
Dim rngData As Range
' 打开源工作簿
Set wbSource = Workbooks.Open("C:\path\to\source\workbook.xlsx")
' 设置源工作表和目标工作表
Set wsSource = wbSource.Sheets("Sheet1") ' 确保这个工作表存在
Set wsDest = ThisWorkbook.Sheets("Sheet1") ' 当前工作簿的目标工作表
' 定义数据范围
Set rngData = wsSource.Range("A1:B10") ' 确保这个范围存在且有效
' 在目标工作表上创建图表
Set chrt = wsDest.Shapes.AddChart2(201, xlColumnClustered).Chart
' 设置图表的数据源
With chrt
.SetSourceData Source:=rngData
.HasTitle = True
.ChartTitle.Text = "Sample Chart"
End With
' 关闭源工作簿,不保存更改
wbSource.Close SaveChanges:=False
End Sub
通过以上步骤和代码示例,你应该能够解决在尝试从不同工作簿创建图表时遇到的运行时错误9。如果问题仍然存在,建议检查VBA编辑器中的“调试”功能,逐步执行代码以定位具体出错的位置。
领取专属 10元无门槛券
手把手带您无忧上云