簡體   English   中英

Excel VBA如果“非工作表”是工作表1或工作表2,並且布爾值在For Next循環中為true

[英]Excel VBA If Not Sheet is Sheet 1 or sheet 2 and Boolean is true within a For Next loop

整個宏從excel數據庫中提取數據並更新excel中的工作表。我基本上是想告訴它更新除兩個特定工作表以外的所有內容,一個在末尾,一個在開始。 該代碼已經使用了一段時間,但是我想在工作表的開頭添加一個表,但無法使其正常工作。

這是有問題的代碼

For Each wsSheet In wbBook.Worksheets
    strName = wsSheet.Name
    If Not (wsSheet Is (Sheet1)) And _
       (blnTF Or (strName = wsActSheet.Name)) _
       Then ... other code

上面的代碼工作正常,但我試圖添加一個Or語句以檢查是否不是Sheet 1或Sheet 2。

我是VBA的新手,並不熟悉語法,我從邏輯上知道我想做什么,並嘗試了多次

這也是我嘗試過的

For Each wsSheet In p_wbBook.Worksheets
    strName = wsSheet.Name
    If Not (wsSheet Is (Sheet1) Or (Sheet2)) And _
       (blnTF Or (strName = wsActSheet.Name)) _
       Then .... other code

但是它不喜歡or語句,如果沒有通過書寫,我也嘗試過

If wsSheet is Sheet2 Then
Goto Next 

但它也不喜歡。

對於Excel為什么不喜歡此語法的任何幫助,將不勝感激。

@PAH是正確的。 在這種情況下,您必須在OR后面有完整的陳述。

(condition 1) Or (condition 2)

改成:

If Not (wsSheet Is (Sheet1) Or wsSheet Is (Sheet2)) And _

為了進行測試,我使用了以下內容:

For Each wsSheet In wbBook.Worksheets
    strName = wsSheet.Name
    If Not (strName = "Sheet1" Or strName = "Sheet2") And (blnTF Or (strName = wsActSheet.Name)) Then
        MsgBox (strName)
    End If
Next wsSheet

暫無
暫無

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

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