Excel 2003:VBA语法在Excel 2010中引起问题-替代方法?

迈克尔·泽奇

我有一个较旧的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中的某些配置来解决问题?

用户4039065

您需要将单元格范围提供为编码的Range对象和/或Range.Cells属性,并可能提供Range.Resize属性

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

当我使用描述范围的严格字符串创建图表时,收到编译错误:Type mismatch一旦将字符串包装Range或直接引用它们.Cells,问题就消失了,并生成了图表。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章