【问题标题】:Updating the text displaid in MACROBUTTON in MS Word在 MS Word 中更新 MACROBUTTON 中显示的文本
【发布时间】:2013-04-13 09:24:28
【问题描述】:

我在 VBA 中使用宏按钮来获得一个字段,其值是通过访问其他系统来计算的,同时,我希望能够双击该字段以指定一些用于从中检索数据的设置其他系统。

整个宏工作正常,但我不知道如何更改宏按钮上的标签。

宏按钮通常看起来像这样 { MACROBUTTON macro_name label {some_arg}{some_arg2} }

我尝试访问 selection.fields(1).code.text 甚至执行正则表达式以用其他东西替换“标签”,但这不起作用,即要么我丢失了参数,要么我搞砸了标签。

对这个问题有什么建议,或者对我可以用来实现此目的的其他类型字段的建议?我不介意使用 DOCVARIABLE 但这些不能响应点击和携带参数?

【问题讨论】:

  • 我不明白你的问题。您使用的是哪个 MS Office 应用程序?也许快照可以提供帮助?
  • 这是 MS Word - 抱歉 - 为了更清楚起见,我编辑了问题。

标签: vba automation ms-word


【解决方案1】:

你应该可以做这样的事情:

Sub Testit1()
    Dim strText As String
    Dim strLabel As String
    Dim strNewLabel As String

    strLabel = "Chew"
    strNewLabel = "Devour"

    ' Replace the field code values in the first field to change the label
    strText = ActiveDocument.Fields(1).Code.Text
    ActiveDocument.Fields(1).Code.Text = Replace(strText, strLabel, strNewLabel)
End Sub

这基本上会在您要更改的宏按钮字段的字段代码内进行搜索和替换。 ActiveDocument.Fields(1).Code.Text 是我认为您正在寻找的部分。

【讨论】:

  • thx 如果我没有我的 args 会起作用,但就我而言,我尝试了这个 Sub macro_name() ActiveDocument.Fields(1).Code.Text = ActiveDocument.Fields(1).Code.Text End Sub,当我单击宏按钮时,我的标签从“标签”变为“标签” some_arg some_arg2 '(此处不显示 chr(19))。这就是我所说的“要么我丢失了参数,要么我搞砸了标签。”。
  • 你能举一个具体的例子,让我看看 Word 中发生了什么吗?
  • 好吧,也许让我更清楚一点 (1) 在新的 Word 文档中,我键入“MACROBUTTON 宏名称标签 some_arg some_arg2”。这将显示“标签”,以灰色突出显示。到目前为止一切都很好。 (2) 我全选,然后按Ctrl-F9 把它变成一个字段。我对 some_arg 和 some_arg2 (分别)做同样的事情(3)然后我创建一个模块函数 macro_name 就像我在 3 小时前的评论中一样(4)当我双击我的 MACROBUTTON 时,“标签”变成了“标签 some_arg some_arg2 ' (虽然通常它应该保持不变,因为我的 sub marco_name() 几乎什么都不做)。更有意义?
  • 好的,我确实看到当您在字段中插入字段时发生了什么,这很奇怪。我没有立即解决这种行为的方法。此外 { } 变成 chr(19) 用于打开和 chr(21) 用于关闭,并且您认为 word 在分配文本以重新创建嵌入字段时会接受这些,但事实并非如此。一种可能对您有效也可能无效的解决方法是不使用嵌入字段,而是重建标签,使其包含嵌入字段显示的结果文本,如 .Text="MACROBUTTON mymacro Config SamDatabase 1000 Records"跨度>
  • (上面的示例假设 {some_arg} 评估为“SamDatabase”,{some_arg2} 评估为“1000 条记录”),显然您必须在文档打开或类似情况下运行某种刷新事件以使这些最初看起来正确。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-31
  • 1970-01-01
  • 2016-06-29
  • 2023-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多