同时为所有工作表启用宏以调整多个工作表上的相同图表的大小,以便更新每个图表

时间:2013-10-04 18:50:36

标签: excel excel-vba vba

我很好奇如何在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

1 个答案:

答案 0 :(得分: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
顺便说一下,出于我自己的目的,我会采用不同的方式,但是你的工作簿里有三张纸是不值得的。