VBA更新图表的源数据

我正在使用VBA生成图表。

使用下面的代码,我可以select列号11到最后一列的数据,这些列存储在LastColumnNumbervariables中:

ActiveChart.SetSourceData Source:=Union(Sheets(SheetName).Range(Cells(1, 11), Cells(1, LastColumnNumber)), Sheets(SheetName).Range(Cells(4, 11), Cells(4, LastColumnNumber)))

因为我实际需要在图表中显示的数据之前和之后有很多零值我正在使用以下方法找出第一个和最后一个非零单元格的地址: https : //stackoverflow.com /一个/二百零一万二千七百四十零分之四千二百四十一万三千五百八十二

我怎样才能更新第一块代码来实现链接答案的解决scheme,并相应地缩小图表的范围?

我用以下方法来处理:

 Dim StartPoint1, StartPoint2, EndPoint1, EndPoint2 As String StartPoint1 = Application.Evaluate("=ADDRESS(1,MATCH(TRUE,4:4<>0,0))") EndPoint1 = Application.Evaluate("=ADDRESS(1,MAX((4:4>0)*COLUMN(4:4)))") StartPoint2 = Application.Evaluate("=ADDRESS(4,MATCH(TRUE,4:4<>0,0))") EndPoint2 = Application.Evaluate("=ADDRESS(4,MAX((4:4>0)*COLUMN(4:4)))") 

图表来源已成为:

 ActiveChart.SetSourceData Source:=Union(Sheets(SheetName).Range(StartPoint1 & ":" & EndPoint1), Sheets(SheetName).Range(StartPoint2 & ":" & EndPoint2)) 

希望它可以帮助别人! 干杯!