我正在编写IF-THEN-ELSE语句,其中包含19个OR语句。有没有办法使用自动换行来更容易看到我正在编码?或者有什么方法可以让这更可行吗?跟踪所有陈述非常困难。
注意:我没有尝试使用Wrapandfit()函数或任何其他函数来修改单元格,我在谈论VBA窗口本身。
声明的一个例子:
If InStr(1, Cells(i, 1).Value, "Administration") > 0 Or InStr(1, Cells(i, 1), "Administrative") > 0 Or InStr(1, Cells(i, 1), "Administrator") > 0 Or InStr(1, Cells(i, 1), "Assistant") > 0 Or InStr(1, Cells(i, 1), "Coordinator") > 0 Then
Cells(i, 2).Value = "Administrative"
这很重要,部分原因是因为调试器(这也需要额外的工作来禁用),我不能只是在一个单独的行上创建所有内容并删除换行符。
答案 0 :(得分:4)
您可以使用续行符_
:
Function SmallPrime(n As Integer) As Boolean
If n = 2 Or n = 3 Or n = 5 Or n = 7 _
Or n = 11 Or n = 13 Or n = 17 _
Or n = 19 Then
SmallPrime = True
Else
SmallPrime = False
End If
End Function
请注意_
编辑:
如果您想在编辑器级别进行真正的自动换行,您可以保留一个TextPad的打开副本,并启用wordwrap,并在其网站上提供VBA语法高亮定义,然后复制粘贴到VBA编辑器中。 (Notepad ++可能有类似的功能,虽然Textpad是我熟悉的)。
答案 1 :(得分:2)
使用" _"字符
IF this
OR this _
OR this _
OR this _
THEN this
答案 2 :(得分:0)
您始终可以创建单独的函数并将19 OR语句放在函数中。如果给函数一个有意义的名称,那么你的IF语句将变得更加清晰。 (除非你有一个很长的函数参数列表)。
以下是一个例子:
Sub mainCode()
Dim i As Integer
i = 3
If theValueIsOk(i) Then
' do something
Else
' do something else
End If
End Sub
Private Function theValueIsOk(theValue As Integer) As Boolean
Dim result As Boolean
result = False
If theValue = 0 Then
result = True
GoTo Exit_Function
End If
If (theValue = 1) Or (theValue = 3) Then
result = True
GoTo Exit_Function
End If
Exit_Function:
theValueIsOk = result
Exit Function
End Function