我正在设置动态单列范围,然后循环遍历该范围以构建ColumnClustered图。
如果Range有一个空单元格循环.FullSeriesCollection
会抛出一个无效的参数错误。发生错误
With .FullSeriesCollection(I)
。
这有什么简单的方法吗?我想表明空单元存在,这是一个时间点,但是这个特定参数不存在。
感谢任何帮助!
With Sheets(GSheet).ChartObjects.Add _
(Left:=100, Width:=200, Top:=75, Height:=150)
With .Chart
.ChartType = xlColumnClustered
'Set data source range.
.SetSourceData Source:=MyRange, PlotBy:=xlRows
For I = 1 To MyRange.Count
With .FullSeriesCollection(I)
' Do Stuff
End With
Next I
End With
End With
答案 0 :(得分:0)
您只需要为MyRange
分配包含值的单元格。一种方法是使用Union
方法。另一种方法是使用SpecialCells
方法。以下是使用Union
方法的示例,假设源数据位于第一个工作表中,并且在A2中:A10 ......
Dim rCell As Range
Dim MyRange As Range
For Each rCell In Sheets(1).Range("A2:A10")
If Len(rCell) > 0 Then
If MyRange Is Nothing Then
Set MyRange = rCell
Else
Set MyRange = Union(MyRange, rCell)
End If
End If
Next rCell
此外,您应该测试MyRange是否已分配任何单元格......
If Not MyRange Is Nothing Then
'Create your chart
'
'
Else
MsgBox "No data found.", vbExclamation
End If
希望这有帮助!