如果Range具有空单元格,则在循环通过.FullSeriesCollection时获取无效参数

时间:2017-10-22 18:25:46

标签: excel vba excel-vba graph

我正在设置动态单列范围,然后循环遍历该范围以构建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

1 个答案:

答案 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

希望这有帮助!