首页 > 解决方案 > 循环浏览非活动工作表

问题描述

循环代码不会一次出现在所有工作表上,除非我转到每个选项卡并运行它

Dim Sheets As Variant
Dim Sheet As Variant

Sheets = Array("1", "2", "3", "4", "5", "6")

For Each Sheet In ActiveWorkbook.Sheets

If Range("G2").Value = 1 Then Range("h10:h11").Value = 
Range("N10:N11").Value
If Range("G2").Value = 1 Then Range("h14:h22").Value = 
Range("N14:N22").Value
If Range("G2").Value = 1 Then Range("h27:h29").Value = 
Range("N27:N29").Value
Next Sheet

我该如何修复我的代码,所以当我在标签 1 上时,它会更改所有其他标签

标签: excelvba

解决方案


当您未在代码中指定父工作表时,您只会获得活动工作表。使用 With 块:

Dim Shts As variant
Dim Sheet As Worksheet

Shts = Array("1", "2", "3", "4", "5", "6")

For Each Sheet In ActiveWorkbook.WorkSheets
    With Sheet
        If .Range("G2").Value = 1 Then 
            .Range("h10:h11").Value = .Range("N10:N11").Value
            .Range("h14:h22").Value = .Range("N14:N22").Value
            .Range("h27:h29").Value = .Range("N27:N29").Value
        End If
    End With
Next Sheet

推荐阅读