Excel 如何跳过某个范围内的空单元格以用作散点图的范围?

Excel 如何跳过某个范围内的空单元格以用作散点图的范围?,excel,vba,Excel,Vba,我是VBA新手,尝试动态选择散点图所需的数据。我正在尝试跳过“a”列中有空白的任何行,以便散点图是连续的 注释部分中的代码是我第一次尝试的代码,但这在setsourcedata行上给了我一个object_global failed error的方法范围。我希望代码跳过空单元格并继续通过mydatatest变量,直到它到达末尾。但是,实际输出在第一个空单元格处停止 Set mydatatest = ActiveWorkbook.Sheets("Data - PLC").Range("A3:A94"

我是VBA新手,尝试动态选择散点图所需的数据。我正在尝试跳过“a”列中有空白的任何行,以便散点图是连续的

注释部分中的代码是我第一次尝试的代码,但这在setsourcedata行上给了我一个object_global failed error的方法范围。我希望代码跳过空单元格并继续通过mydatatest变量,直到它到达末尾。但是,实际输出在第一个空单元格处停止

Set mydatatest = ActiveWorkbook.Sheets("Data - PLC").Range("A3:A94")
'Set mydata = ActiveWorkbook.Sheets("Data - PLC").Range("A2:C2")
Set mydata = ActiveWorkbook.Sheets("Data - PLC").Range("A2")

For Each mydatapoint In mydatatest

    If IsEmpty(mydatapoint) = False Then
        'Set mydata = Union(mydata, Range(mydatapoint, mydatapoint.Offset(0, 2)))
        Set mydata = Union(mydata, mydatapoint)
    End If

Next mydatapoint

ActiveWorkbook.Sheets("Report").Select
Set cht1 = Sheet1.ChartObjects.Add(10, 365, 275, 200)

With cht1.Chart
    .ChartType = xlXYScatterLinesNoMarkers
    .SeriesCollection.Add Source:=Range(mydata, mydata.Offset(0, 2))
    '.SetSourceData Source:=Range(mydata)
End With

错误在
中。SetSourceData:=范围(mydata)
。它应该是
。SetSourceData Source:=myData
myData
已声明为
Range()
。其余的都很好:

Option Explicit

Sub TestMe()

    Dim myDataTest As Range
    Dim myData As Range

    Dim wks As Worksheet
    Set wks = Worksheets(1)

    Set myDataTest = wks.Range("A3:A94")
    Set myData = wks.Range("A2")

    Dim myDataPoint As Range

    For Each myDataPoint In myDataTest
        If Not IsEmpty(myDataPoint) Then
            Set myData = Union(myData, myDataPoint)
        End If
    Next myDataPoint

    Dim cht As Object
    Set cht = wks.ChartObjects.Add(10, 365, 275, 200)

    With cht.Chart
        .ChartType = xlXYScatterLinesNoMarkers
        .SeriesCollection.Add Source:=wks.Range(myData, myData.Offset(0, 2))
        .SetSourceData Source:=myData
    End With

End Sub

错误在
中。SetSourceData:=范围(mydata)
。它应该是
。SetSourceData Source:=myData
myData
已声明为
Range()
。其余的都很好:

Option Explicit

Sub TestMe()

    Dim myDataTest As Range
    Dim myData As Range

    Dim wks As Worksheet
    Set wks = Worksheets(1)

    Set myDataTest = wks.Range("A3:A94")
    Set myData = wks.Range("A2")

    Dim myDataPoint As Range

    For Each myDataPoint In myDataTest
        If Not IsEmpty(myDataPoint) Then
            Set myData = Union(myData, myDataPoint)
        End If
    Next myDataPoint

    Dim cht As Object
    Set cht = wks.ChartObjects.Add(10, 365, 275, 200)

    With cht.Chart
        .ChartType = xlXYScatterLinesNoMarkers
        .SeriesCollection.Add Source:=wks.Range(myData, myData.Offset(0, 2))
        .SetSourceData Source:=myData
    End With

End Sub

顺便说一句,声明
Set myData=wks.Range(“A2”)
,只是为了有一些东西来联合它-
Union(myData,myDataPoint)
有点好:)顺便说一句,声明
Set myData=wks.Range(“A2”)
,就是为了有一些东西来联合它-
Union(myData,myDataPoint)
有点好:)