我正在尝试使用宏为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
答案 0 :(得分:1)
当我输入4,5时,我得到相同的错误,但如果我输入4.5
则不会更改您的小数分隔符,看看它是否有效。您的工作表可能来自另一个国家/地区,为数千和十进制分隔符设置了不同的国际编号方法。
有关详细信息,请参阅此link。
答案 1 :(得分:1)
您可以尝试将系列定义更改为由数组定义而不是字符串:
.XValues = Array(X1, X2)
.Values = Array(Z1, Z2)
这可以避免区域设置的潜在问题。
答案 2 :(得分:0)
将X和Z变量声明为字符串可能会有所帮助。 Excel可以将逗号转换为句点,反之亦然。