使用代码中的列表循环excel宏,以便用户友好
我写了一个宏,以便在打开文件时将4个透视图格式化为反转颜色。 像一个符咒一样工作,但是我需要它对每个选项卡重复这个操作。 我希望排除的选项卡数量与希望包含的选项卡数量相同。 另外一个问题是,我希望报告对用户友好, 如果以后需要一个额外的选项卡,那么我希望对VBA知之甚少的人能够轻松地进行调整,并通过一些简单的说明将选项卡添加到代码中。 我想知道是否有一种方法可以将宏应用到选项卡列表中 我已经得到的代码如下:使用代码中的列表循环excel宏,以便用户友好,excel,vba,loops,format,Excel,Vba,Loops,Format,我写了一个宏,以便在打开文件时将4个透视图格式化为反转颜色。 像一个符咒一样工作,但是我需要它对每个选项卡重复这个操作。 我希望排除的选项卡数量与希望包含的选项卡数量相同。 另外一个问题是,我希望报告对用户友好, 如果以后需要一个额外的选项卡,那么我希望对VBA知之甚少的人能够轻松地进行调整,并通过一些简单的说明将选项卡添加到代码中。 我想知道是否有一种方法可以将宏应用到选项卡列表中 我已经得到的代码如下: Sub Auto_Open() ' ' Auto_Open Macro ' ' Keyb
Sub Auto_Open()
'
' Auto_Open Macro
'
' Keyboard Shortcut: Ctrl+s
'
Sheets("Sheet 1").Select
ActiveSheet.ChartObjects("Chart 2").Activate
ActiveChart.SeriesCollection(1).Select
Selection.InvertIfNegative = True
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 192, 0)
.BackColor.RGB = RGB(255, 0, 0)
.Solid
End With
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(146, 208, 80)
.BackColor.RGB = RGB(255, 0, 0)
.Transparency = 0
.Solid
End With
Range("L23").Select
'
ActiveSheet.ChartObjects("Chart 3").Activate
ActiveChart.SeriesCollection(1).Select
Selection.InvertIfNegative = True
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 192, 0)
.BackColor.RGB = RGB(255, 0, 0)
.Solid
End With
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(146, 208, 80)
.BackColor.RGB = RGB(255, 0, 0)
.Transparency = 0
.Solid
End With
Range("L23").Select
'
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.SeriesCollection(1).Select
Selection.InvertIfNegative = True
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 192, 0)
.BackColor.RGB = RGB(255, 0, 0)
.Solid
End With
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(146, 208, 80)
.BackColor.RGB = RGB(255, 0, 0)
.Transparency = 0
.Solid
End With
Range("L23").Select
'
ActiveSheet.ChartObjects("Chart 4").Activate
ActiveChart.SeriesCollection(1).Select
Selection.InvertIfNegative = True
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 192, 0)
.BackColor.RGB = RGB(255, 0, 0)
.Solid
End With
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(146, 208, 80)
.BackColor.RGB = RGB(255, 0, 0)
.Transparency = 0
.Solid
End With
Range("L23").Select
您可以使用两种方法。
无VBA:
如果你想更新,你可以在一个特定的单元格(Es.A10)中加上一个“X”,如果你不想更新,则什么也不加。更新代码,如下所示:
For Each Sht In ActiveWorkbook.Sheets
Sht.Select
If Sht.Range("A10").Value = "X" Then
ActiveSheet.ChartObjects("Chart 2").Activate
...
Range("L23").Select
End If
Next
带VBA:添加包含要更新的图纸名称的简单数组。修改代码:
Dim Sht(1 To 10) As String
Sht(1) = "Sheet1"
Sht(2) = "Sheet3"
For e = 1 To UBound(Sht)
If Sht(e) = "" Then Exit For
ActiveWorkbook.Sheets(Sht(e)).Select
ActiveSheet.ChartObjects("Chart 2").Activate
...
Range("L23").Select
Next
如果添加选项卡,它们是否可能是要包括或排除的选项卡?