繁体   English   中英

遍历不活动的工作表

[英]Looping through Inactive worksheets

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

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上更改所有其他选项卡时

如果您未在代码中指定父级工作表,则只会获得活动工作表。 使用带块:

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

像这样,还检查工作表是否存在,并提供跳过活动工作表的选项

Sub n()

Dim Shts() As Variant
Dim ws As Worksheet
Dim s As Variant

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

For Each s In Shts

    If WORKSHEET_EXISTS(CStr(s)) Then

        '   Exclude the activesheet?
        If s <> ActiveSheet.Name Then

            Set ws = ThisWorkbook.Worksheets(s)
            With ws
                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

        '   End of exclude
        End If

    Else

        Debug.Print "Can't find worksheet : " & s

    End If

Next s

Erase Shts

End Sub

Function WORKSHEET_EXISTS(strWorksheetname As String) As Boolean

Dim w As Excel.Worksheet

WORKSHEET_EXISTS = False

On Error GoTo eHandle

Set w = ThisWorkbook.Worksheets(strWorksheetname)

WORKSHEET_EXISTS = True

ExitFunction:

Exit Function

eHandle:

End Function

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM