允许用户在word vba宏中选择文本

时间:2009-04-02 14:31:02

标签: vba ms-word

在VBA for Word 2007中,我希望能够打开文档,突出显示文本的各个部分,并用链接到docvariables的字段替换这些部分。这个过程将是:

  1. 打开文档。
  2. 选择文字。
  3. 从列表中选择docvariable。
  4. 插入链接到所选docvariable的字段。
  5. 根据需要重复步骤1-4。
  6. 无法事先知道要选择的文本是什么,或者哪个docvariable将链接到哪个字段或这些步骤将重复多少次。

    只有使用Microsoft才能完成最绝对的基本,简单的任务,即允许用户在运行时进行选择并将此选择传递回子程序,这是非常曲折和超现实的。我花了两天的时间试图解决这个问题。如果有人可以提供帮助,我会告诉你下一个孩子。

1 个答案:

答案 0 :(得分:1)

我认为“曲折和超现实”是一种误解。

创建一个带有下拉列表的小表单(例如,名为"selVarName"),可以选择所有可用的文档变量名称。将表单链接到快速访问工具栏中的自定义按钮。

点击此表单中的“确定”,执行以下操作:

Private Sub btnOK_Click()
  Dim v As Word.Variable
  Dim n As String

  n = Me.selVarName.Value
  With Selection
    For Each v In .Document.Variables
      If v.Name = n Then v.Delete: Exit For
    Next v
    .Document.Variables.Add n, .Range.Text
  End With
End Sub

这已经是花里胡哨了。例如,您可以执行“无文本选择”等其他检查。