[英]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.