【问题标题】:Clear / Empty Variable for next loop为下一个循环清除/清空变量
【发布时间】:2016-09-11 03:52:43
【问题描述】:

我遇到一种情况,我需要 clear 变量 lastWord 以便 msgbox 在下一个 loop 中不显示任何内容。

以下代码只是一个示例。

Sub clear_lastWord_Variable()

    Dim wordArr() As String
    Dim lastword As String
    Do
        selection.Find.ClearFormatting
        selection.Find.Font.Bold = True
        With selection.Find
            .Forward = True
            .Wrap = wdFindStop
        End With
        selection.Find.Execute

        If selection.Find.Found Then

            wordArr = Split(selection, " ")

            For i = LBound(wordArr) To UBound(wordArr) Step 1
                lastword = wordArr(i)

            Next i

            MsgBox lastword

            ' here should be something to clear lastword
        Else
            Exit Do
        End If
    Loop

End Sub

【问题讨论】:

    标签: vba ms-word word-2007


    【解决方案1】:

    您不能“清除”非对象变量,您只能将其设置为已定义的值。对于字符串变量,通常是空字符串""。

    lastword = ""
    

    或(相同)

    lastword = vbNullString
    

    对于对象变量,有Set myObj = Nothing。

    【讨论】:

    • 请看下面,VARIANT类型变量可以设置为EMPTY,然后通过IsEmpty()函数检查。
    • Variant 是正确的。问题是关于String 变量。 @MilanOparnica
    【解决方案2】:

    如果你的变量不是对象,你也可以这样做:

    lastword = Empty
    

    【讨论】:

      猜你喜欢
      • 2018-07-25
      • 2014-03-29
      • 2011-01-16
      • 2017-09-16
      • 1970-01-01
      • 2012-12-13
      • 1970-01-01
      • 2022-10-15
      • 1970-01-01
      相关资源
      最近更新 更多