簡體   English   中英

在 Excel VBA 中跳過循環 function 中的一些工作表

[英]Skip some worksheets in loop function in Excel VBA

單擊按鈕時,我希望有一個按鈕將 MOST 工作表上的信息替換為主工作表中的信息。 但是,我希望它跳過一些工作表。

我有下面的代碼可以工作,但是我希望它在運行時跳過 2 張工作表。 如何指定跳過名為“日期”和“每月”的工作表

 Sub Button4_Click()

 Dim wsVar As Worksheet

 For Each wsVar In ThisWorkbook.Sheets
     With wsVar
        .Range("B9:M30").Value = Worksheets("BASE").Range("B9:M30").Value
     End With
 Next wsVar

 End Sub

您可以使用 IF 語句檢查工作表的名稱,然后采取相應措施。

   For Each wsVar In ThisWorkbook.Sheets
     If wsVar.Name = "foo" Or wsVar.Name = "bar" Then
      ' do nothing
     Else
    
        With wsVar
            .Range("B9:M30").Value = Worksheets("BASE").Range("B9:M30").Value
        End With
    
     End If
   Next wsVar

此代碼將排除Exclude數組中列出的所有工作表。 請注意,工作表名稱比較是不區分大小寫的,並且前導或尾隨空格被認為是無意的並被刪除。

Sub Button4_Click()

    Dim wsVar       As Worksheet
    Dim Exclude()   As String
    Dim i           As Integer
    
    Exclude = Split("Dates,Monthly", ",")
    For Each wsVar In ThisWorkbook.Worksheets
        With wsVar
            For i = UBound(Exclude) To 0 Step -1
                If StrComp(wsVar.Name, Trim(Exclude(i))) = 0 Then Exit For
            Next i
            If i >= 0 Then .Range("B9:M30").Value = Worksheets("BASE").Range("B9:M30").Value
        End With
    Next wsVar

 End Sub

稍作更改,您就可以將相同的 function 轉換為僅處理列出的工作表。 一般來說,積極地而不是消極地識別工作表是安全的方法。 但是,如果您決定這樣做,請同時重命名數組:-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM