基本上,我试图将我的工作任务之一自动化到一个宏中,该宏将获取一些数据并将其放入5系列簇状柱形图中,从而以视觉上吸引人的方式呈现信息。问题是范围长度每周变化一次,具体取决于所处理零件的数量。添加系列值时,我只是遇到一个小错误,因为excel不接受我的字符串参数。以下是我所拥有的。
Sub FilterRankAndCreateChart()
Dim i As Integer
Dim rnge As String
i = 0
Sheets("MC Spares Risk Calculations").Select
Range("A1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
i = i + 1
Loop
Let rnge = "$J$2:$J$" & i
Worksheets("MC Risk Chart").Activate
ActiveSheet.ChartObjects(1).Activate
ActiveChart.SeriesCollection.NewSeries
ActiveChart.FullSeriesCollection(1).Name = "=""Low Risk"""
ActiveChart.FullSeriesCollection(1).Values = "='Risk Charts'!rnge"
ActiveChart.FullSeriesCollection(1).XValues = "='Risk Charts'!$B$2:$B$149"
立即窗口中显示的rnge值正确。但是,当我使用rnge定义值时,出现1004错误(应用程序或对象定义的错误)。有关如何解决此问题的任何见解?
答案 0 :(得分:0)
只需结束这个问题即可
1:如前所述,无需循环即可找到最后一个单元格。
2:从文档中,Series.Values
可以使用Range
对象。与Series.XValues
相同。
With Worksheets("MC Spares Risk Calculations")
Dim lastRow as Long
lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
Dim rng as Range
Set rng = .Range("J2:J" & lastRow)
End With
With Worksheets("MC Risk Chart").ChartObjects(1).Chart
...
.FullSeriesCollection(1).Values = rng
.FullSeriesCollection(1).XValues = rng2 ' another Range object
End With