VBA 运行-时间1004错误

VBA run-time 1004 error

我在 VBA 上遇到 运行 次 1004 错误。我知道问题出在哪里,但我就是找不到解决办法。

我使用的是 Microsoft Excel 2013

样本数据如下:

1   01/19/2015  40  0.250006538
                52  0.052997791
                58  0.010990106
2   01/20/2015  40  0.250001126
                52  0.052997369
                58  0.010990412
3   01/21/2015  40  0.250005088
                52  0.052996605
                58  0.010990819

它一直在继续。我打算做的是提取特定数字旁边的数据值(例如,对于 40,它将是 0.250006538、0.250001126、0.250005088 等)并将它们绘制在图表上。

到目前为止我所做的是将范围合并在一起:

'checks for number 40
For each c In rng1.Cells
        Set cellRange = Range("D" & c.Row)
        Set cCell1 = Union(cCell1, cellRange)
Next

我也试过这个方法:

 'checks for number 40
 For each c In rng1.Cells
    If Not s = vbNullString Then
           s = s & "," & Range("D" & c.Row).address
    Else
           s = Range("D" & c.Row).address
    End If
 Next

我将得到的最终结果是带有地址列表的 cCell1 变量或 s 变量。

 $D,$D,$D,$D,$D,$D,$D,$D,$D,$D,$D,$D,$D,$D,$D,$D,$D,$D,$D,$D,$D,$D,$D,$D,$D,$D,$D,$D,$D,$D,$D,$D,$D,$D1,$D4,$D7,$D0,$D3,$D6,$D9,$D2,$D5,$D8,$D1,$D4,$D7,$D0,$D3,$D6,$D9,$D2,$D5,$D8,$D1,$D4,$D7,$D0,$D3,$D6,$D9,$D2,$D5,$D8,$D1,$D4,$D7,$D0,$D3,$D6,$D9,$D2,$D5,$D8,$D1,$D4,$D7,$D0,$D3,$D6,$D9,$D2

问题是当我尝试用

在图表上绘制图形时
 ActiveChart.SeriesCollection(1).Values = Range(cCell1.address)

 ActiveChart.SeriesCollection(1).Values = Range(s)

它停止并给我一个运行时间错误“1004”。

我假设发生这种情况是因为变量中的地址太长而无法由 Range 函数处理...我正在使用的数据表有成百上千的数据,必须绘制图表根据点数。

有什么解决方法吗?非常感谢!

这对我有用...

Sub Tester()

    Dim c As Range, cTot As Range, s As Series

    'collect all values for "40"
    For Each c In Range("D1:D27").Cells
        If c.Offset(0, -1) = 40 Then
            If cTot Is Nothing Then
                Set cTot = c
            Else
                Set cTot = Application.Union(cTot, c)
            End If
        End If
    Next c

    'create new series
    Set s = ActiveSheet.ChartObjects(1).Chart.SeriesCollection.NewSeries()

    s.Values = cTot  'set values

End Sub