首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >避免激活在Excel VBA中的使用

避免激活在Excel VBA中的使用
EN

Stack Overflow用户
提问于 2017-02-09 19:52:26
回答 1查看 4.7K关注 0票数 0

对Excel VBA来说很新鲜..。与这篇文章非常相似:Avoiding the use of Activate and Select when working with charts (Excel),我试图避免使用Activate来对大型工作簿中的许多图表进行小的更改。我正在为大量图表执行此任务,因此我希望尽可能减少运行时间,并且听说select/activate函数会减慢宏的速度。

我的示例代码如下所示:

代码语言:javascript
复制
ActiveSheet.ChartObjects("Chart 3").Activate
ActiveChart.FullSeriesCollection(1).XValues = "=Leb!$C$2:$G$2"

我试图用以下两行取代这两行,因为这对我来说是合乎逻辑的:

代码语言:javascript
复制
ActiveSheet.ChartObjects("Chart 3").FullSeriesCollection(1).XValues = "=Leb!$C$2:$G$2"

此代码在运行时会导致错误,因此我尝试使用上面提到的post所示的WITH格式:

代码语言:javascript
复制
With Worksheets("Chart").ChartObjects("Chart 3").Chart.XValues = "=Leb!$C$2:$G$2"
End With

这也会引发错误。

我知道我可能犯了一个小的语法错误,但是有人能提供任何关于我做错了什么的洞察力吗?(我以前从未使用过WITH函数,所以对它的一些一般见解也会很有帮助。)

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-09 20:01:39

快到了..。

代码语言:javascript
复制
With Worksheets("Chart").ChartObjects("Chart 3").Chart
    .SeriesCollection(1).XValues = "=Leb!$C$2:$G$2"
End With

XValues属于Series对象,而不是图表(引用上一个代码示例)。

编辑:

代码语言:javascript
复制
Dim arrCharts, cht
arrCharts = Array("Chart 3", "Chart 4", "Chart 5", "Chart 7")

For Each cht In arrCharts
    With Worksheets("Chart").ChartObjects(cht).Chart
        .SeriesCollection(1).XValues = "=Leb!$C$2:$G$2"
    End With
Next cht
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42145631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档