在Word VBA中,我想知道确定是否选择了文本的正确方法。我可能有答案(如下所示(,但我想问一下它是否正确。
这令人困惑,因为大多数属性显示未选择任何内容与选择的一个字符之间没有区别。
一个明显的可能性是If Selection.End - Selection.Start > 0
,但这似乎没有必要。难道没有True
或False
的特定属性..?
我看到该属性Selection.Type
,但文档非常单薄且无济于事。它不解释任何细节,例如正常、内联、块或任何其他的定义。在谷歌上搜索这些答案是没有帮助的。
通过实验,我或许找到了答案:
Selection.Type=wdSelectionIP
似乎是没有选择任何东西的时候。Selection.Type=wdSelectionNormal
似乎是选择任何文本时。
这是正确和可靠的方法吗..?
将Selection.Type
与wdSelectionIP
进行比较。我提供了如下代码示例:
.
'简单检查是否选择了文本:
If (Selection.Type <> wdSelectionIP) Then
Debug.Print "You have selected: " & Selection.Text
Else
Debug.Print "No text is selected."
End If
.
'正常退出并显示消息 - 如果未找到选择:
If Not (Selection.Type <> wdSelectionIP) Then
MsgBox "Text not selected." & vbNewLine & vbNewLine & "Please select text before proceeding", vbOKOnly & vbExclamation, "Selection not found"
Exit Sub
End If
.
这也是迈斯特@Cindy建议的。
参考:Microsoft文档(选择类型属性(。