Excel VBA中的自动换行?

时间:2015-08-06 17:33:50

标签: vba excel-vba excel

我正在编写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"

这很重要,部分原因是因为调试器(这也需要额外的工作来禁用),我不能只是在一个单独的行上创建所有内容并删除换行符。

3 个答案:

答案 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