我有一个旧的VBA脚本(Office 2003)来修复Office 2010中的失败。 问题似乎是由用于引用工作表和单元格的语法引起的。
ActiveChart.SeriesCollection(1).XValues = _
"=EP!Z1S2:Z1S" & Mid(Str(Schritte + 2), 2)
With ActiveChart.SeriesCollection(1)
.Values = "=EP!Z3S2:Z3S" & Mid(Str(Schritte + 2), 2)
.Name = "=EP!Z3S1"
End With
是否有使用“= Sheet!CellRange”的替代方案? 或者可以通过更改Office / Excel中的某些配置来解决问题?
答案 0 :(得分:1)
您需要提供编码为Range objects和/或Range.Cells property的单元格区域,可能还有Range.Resize property。
dim ws as worksheet
set ws = worksheets("EP")
ActiveChart.SeriesCollection(1).XValues = _
ws.range("Z1S2:Z1S" & Mid(Str(Schritte + 2), 2))
With ActiveChart.SeriesCollection(1)
.Values = ws.cells(3, 2).resize(1, int(Mid(Str(Schritte + 2), 2))) '=EP!Z3S2:Z3S" & Mid(Str(Schritte + 2), 2)
.Name = ws.cells(3, 1) '=EP!Z3S1
End With
当我使用严格描述范围的字符串创建图表时,我收到编译错误:类型不匹配。只要我将Range
中的字符串包裹起来或者直接用.Cells
引用它们,问题就会消失并生成图表。