0

我正在尝试使用宏为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 时代码停止。任何人都可以帮助解决这个问题吗?

问候,

吉蒂斯

4

3 回答 3

1

输入 4,5 时出现相同的错误,但输入 4.5 时不会出现

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

有关更多信息,请参阅此链接

于 2013-09-28T23:55:12.593 回答
1

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

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

这可能会避免与区域设置有关的潜在问题。

于 2013-09-29T12:56:22.667 回答
0

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

于 2013-09-29T06:33:19.217 回答