xlXYScatterLines图表

时间:2013-09-28 23:19:50

标签: excel vba

我正在尝试使用宏为excel中的自动xlXYScatterLines图表生成编写vba代码。这是我的代码:

Sub GenerateChart()
With Charts.Add 
    .ChartType = xlXYScatterLines
    .Location Where:=xlLocationAsNewSheet
    .HasLegend = True

    Sheets("Members").Activate
    For A = Range("A" & Rows.Count).End(xlUp).Row To 1 Step -1
    Set member = Rows(A).Columns(1)
    If (member.Offset(0, 3)) = (member.Offset(0, 7)) And A <> 1 Then

    X1 = Rows(A).Columns(3)
    X2 = Rows(A).Columns(7)
    Z1 = Rows(A).Columns(5)
    Z2 = Rows(A).Columns(9)
            With .SeriesCollection.NewSeries
                .XValues = "={" & (X1) & ";" & (X2) & "}"
                .Values = "={" & (Z1) & ";" & (Z2) & "}"
                .Name = member
            End With
    End If
    Next A
End With
End Sub

当所有X和Z都是完整数字(没有逗号)时,代码工作正常,但是当X1,X2,Z1或Z2例如是4,5时,代码会停止。有人可以帮忙解决这个问题吗?

此致

Gytis

3 个答案:

答案 0 :(得分:1)

当我输入4,5时,我得到相同的错误,但如果我输入4.5

则不会

更改您的小数分隔符,看看它是否有效。您的工作表可能来自另一个国家/地区,为数千和十进制分隔符设置了不同的国际编号方法。

有关详细信息,请参阅此link

答案 1 :(得分:1)

您可以尝试将系列定义更改为由数组定义而不是字符串:

.XValues = Array(X1, X2)
.Values = Array(Z1, Z2)

这可以避免区域设置的潜在问题。

答案 2 :(得分:0)

将X和Z变量声明为字符串可能会有所帮助。 Excel可以将逗号转换为句点,反之亦然。