0

我很好奇如何在 VB 中修改我的代码以允许此宏一次在工作簿中的多个工作表上运行。我想做的是让这个宏大小的图表在工作簿的三张纸上使用。它是同一张图表(图表 1),大小由活动的 x 命令按钮控制。这是针对 excel 2010 的。

任何帮助表示赞赏。

 Sub thritysecs()
'
' thritysecs Macro
' sets chart to 30 seconds
'
' Keyboard Shortcut: Ctrl+e
ActiveSheet.Unprotect Password:=""
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveWindow.SmallScroll Down:=-15
ActiveChart.Axes(xlValue).Select
ActiveChart.Axes(xlValue).MaximumScale = 30
ActiveChart.ChartArea.Select
ActiveSheet.Shapes("Chart 1").ScaleWidth 0.699915576, msoFalse, _
    msoScaleFromTopLeft
ActiveSheet.Protect Password:="", userinterfaceonly:=True
End Sub
4

1 回答 1

0

对于了解 VBA 的人来说,这就是 60 秒的修改时间。所以,我会为你做的:)

Sub thritysecs()

Dim SH as Worksheet
For each SH in Worksheets
    SH.Activate
        ActiveSheet.Unprotect Password:=""
        ActiveSheet.ChartObjects("Chart 1").Activate

        ActiveChart.Axes(xlValue).Select
        ActiveChart.Axes(xlValue).MaximumScale = 30
        ActiveChart.ChartArea.Select
        ActiveSheet.Shapes("Chart 1").ScaleWidth 0.699915576, msoFalse, _
                msoScaleFromTopLeft
        ActiveSheet.Protect Password:="", userinterfaceonly:=True
Next SH
End Sub

顺便说一句,出于我自己的目的,我会采取不同的做法,但是对于您工作簿中的三张纸来说,这不值得。

于 2013-10-04T19:53:10.873 回答