Vba 未选择任何内容时提供msgbox

Vba 未选择任何内容时提供msgbox,vba,Vba,我编写了以下代码,将我选择的所有文本框向右对齐 Sub alignFunction(direction) Dim oSel As ShapeRange Set oSel = ActiveWindow.Selection.ShapeRange With oSel .TextFrame.TextRange.Paragraphs.ParagraphFormat.Alignment = direction End With End Sub Sub AlignRight() alignFunc

我编写了以下代码,将我选择的所有文本框向右对齐

Sub alignFunction(direction)

Dim oSel As ShapeRange
Set oSel = ActiveWindow.Selection.ShapeRange

With oSel
 .TextFrame.TextRange.Paragraphs.ParagraphFormat.Alignment = direction
End With

End Sub

Sub AlignRight()
 alignFunction (ppAlignRight)
End Sub
但是,如果我没有选择任何内容,它将不工作,并给出一个错误。我想包括一些东西,所以我得到一个弹出窗口说“请选择任何东西”,以防我没有选择任何东西


有什么想法吗?

首先使用设置断点,然后查看
osel
和陷阱。我以前从未这样做过,但我猜是ActiveWindow或ActiveWindow。选择可能为空。ShaperAge似乎非常依赖于选择,我可能会错误地假设,如果设置了选择,ShaperAge是一个自动设置的属性(或者更确切地说,是一个利用已有内容的属性,如列表上的Count())。我想最好还是绕着昏暗的天空。。。。以if(ActiveWindow!=null&&ActiveWindow.Selection!=null)检查中的代码结束(不确定在VB中是什么样子)。@Nathan_Sav你能给一个代码示例吗?你需要调试它并检查自己,看看Robert的建议。