2017-03-16 26 views
0

我正在写一个自定义用户对话来审查修订版本(其中我只发布与我的问题相关的代码)。 使用命令按钮“FindNextRevision_Click”,我跳转到下一个版本并显示版本属性。使用命令按钮“AcceptRevision_Click”,我接受选定的修订。单词VBA:如何在用户对话窗口中操作时显示更改的选择对象?

该代码工作正常,但是当我导航到下一个修订时,选择对象将不会在文本内标记,直到我离开对话框 - 这正在破坏我的整个目的,因为我无法立即看到我正在操作的修订版位于文本中。

如何在不离开对话框的情况下从用户对话框中更改选择对象时显示选择对象?

Public Rev_Selected As Revision 

Private Sub FindNextRevision_Click() 
    Set Rev_Selected = Selection.NextRevision 
    With Rev_Selected 
     strRevType = .Type 
     strRevAuth = .Author 
     strRevDate = .Date 
     strRevR = .Range 
    End With 
    Call MTF_DisplayRevisionProperties(strRevType, strRevAuth, strRevDate, strRevR) 
    ActiveWindow.ScrollIntoView Selection.Range 
end sub 

Private Sub AcceptRevision_Click() 
    Rev_Selected.Accept 
End Sub 

Sub MTF_DisplayRevisionProperties(strRevType, strRevAuth, strRevDate, strRevR) 
    'some code which is not important for my question 
end sub 
+1

窗体的Show命令默认为模态,这意味着在窗体关闭之前对象上没有任何东西可以完成。尝试使用 调用窗体。显示vbModeless – Variatus

+0

可能类似'Selection.HighlightColorIndex = wdGray50' – Slai

回答

0

这是部分答案(现已被Variatus的评论过时(见上文):

前行:

ActiveWindow.ScrollIntoView Selection.Range 

我加了一行:

Word.Application.Activate 

只要我不将焦点切换到任何其他应用程序,我可以按照不断变化的选择对象 屏幕上。但是,如果我将焦点切换到另一个应用程序,即Acrobat Reader,然后返回到WinWord,则只要不关闭用户对话框,选择对象就不会再显示。

相关问题