Excel VBA如果不是工作表是Sheet 1或工作表2,并且布尔在For Next循环中是true
整个macros从数据库中提取数据,并在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语句来检查,如果不是工作表1或工作表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
但它不喜欢或声明我也试过这个如果不是写在外面
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 _
出于testing目的,我使用了以下内容:
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