在VBA中是否有与python“pass”等效的代码?
例如:
For Each ws In ThisWorkbook.Sheets
If ws.Name = "Navy Reqs" Then
ws.Select
nReqs = get_num_rows
Cells(1, 1).Select
If ActiveSheet.AutoFilterMode Then Cells.AutoFilter
Selection.AutoFilter
ElseIf ws.Name = "temp" Then
pass
Else
ws.Select
nShips = get_num_rows
End If
Next
我在这里得到一个错误,没有定义pass。感谢。
答案 0 :(得分:8)
删除pass
并重新运行代码。 VBA很乐意接受我相信
答案 1 :(得分:4)
请留空。您也可以使用Select语句,它更容易阅读。
For Each ws In ThisWorkbook.Sheets
Select Case ws.Name
Case "Navy Reqs":
'...
Case "temp":
'do nothing
Case Else:
'...
End Select
Next
答案 2 :(得分:4)
不要包含任何陈述:
Sub qwerty()
If 1 = 3 Then
Else
MsgBox "1 does not equal 3"
End If
End Sub
答案 3 :(得分:4)
编写符合其说法的代码,并说出它的作用。
For Each ws In ThisWorkbook.Sheets
If ws.Name = "Navy Reqs" Then
ws.Select
nReqs = get_num_rows
Cells(1, 1).Select
If ActiveSheet.AutoFilterMode Then Cells.AutoFilter
Selection.AutoFilter
Else If ws.Name <> "temp" Then
ws.Select
nShips = get_num_rows
End If
Next
这就是你所需要的一切。一条指令意味着&#34;这里有一些无用的代码&#34;在VBA中不存在。
您希望评论说为什么,而不是什么 - 评论说'do nothing
与此完全相反。不要写无操作码,这是纯粹的噪音。
假设Python的pass
像C#的continue
语句一样工作并跳到下一次迭代,那么VBA等价物是唯一合法使用的{{1}跳转:
GoTo
答案 4 :(得分:2)
此代码显示了一个IF测试,除非得到匹配,否则它会一直搜索。
Function EXCAT(Desc)
Dim txt() As String
' Split the string at the space characters.
txt() = Split(Desc)
For i = 0 To UBound(txt)
EXCAT = Application.VLookup(txt(i), Worksheets("Sheet1").Range("Dept"), 2, False)
If IsError(EXCAT) Then Else Exit Function
Next
' watch this space for composite word seach
EXCAT = "- - tba - -"
End Function
答案 5 :(得分:1)
这实际上是一个合法的问题。我想运行一个调试例程,该例程将在某个临界值(例如8)时停止,即将断点设置为x = 8,然后逐行逐步执行。因此,以下构造很有用:
Select Case x
Case 21
'do nothing
Case 8
'do nothing
Case 14
'do nothing
Case 9
'do nothing
End Select
显然,这里的任何内容都可以,例如x=x
,但是最好有像pass
这样的形式。
但是我一直在使用x=x
。
答案 6 :(得分:0)
我用COBOL编码了很多年,等效的'do no'语句是NEXT SENTENCE
。
在VBA中,我发现自己创建了一个虚拟变量(有时是全局变量)dim dummy as integer
,然后当我需要在If..Then..Else
中执行“不执行任何操作”操作时,我输入了以下代码: {1}}。
答案 7 :(得分:0)
大多数语言都有“ null”或“空”语句,例如Python的pass
。这些陈述已经演变,因为它们实际上是有用的,并且在某些语法上是必需的。例如,正如其他人所建议的那样,空语句可以充当调试器的无副作用锚点。
我使用:
Debug.Assert True
请注意,如果您的用例是设置条件断点,您可能会发现Stop
更有用,如:
If targetShape.Type = msoAutoShape Then
Stop
End