0

Word 2010 文档有一个显示一些文本的 ActiveX 标签。从用户的角度来看,有什么方法可以使文本可选择或可复制,以便他可以将其粘贴到其他地方?

用例:我将表格交给某人,他们填写并返回给我。有问题的元素是一个标签,当双击它时,会生成 UserForm1,它上面有一个 ListBox。一旦做出一个或多个选择并且用户在 UserForm1 上按 OK,Word 文档中的标签就会更新。然后我收到表单,并想右键单击标签,复制文本并将其粘贴到电子邮件中。

4

1 回答 1

0

你不能,至少从最终用户的角度来看是这样。让我解释。

我开始想用标签来实现这一点,但很快发现我无法使用传统的 ctrl-c 或右键单击 > 复制来复制那里显示的文本。

所以,我把它换成了一个文本框。这有点奏效,并且显示了数据,但有一个缺陷:Word 2010 似乎在 TextBox 的最后一行和 TextBox 的底部之间放置了一堆不可选择的空间,使大部分内容隐藏起来,直到您向上滚动到它的顶部。

这是它的样子:

修复前 TextBox 与 Label 方法的比较

注意到列表中最后一项下方的所有空白、不可选择的空间吗?

解决我的 100% 文本未显示在框中的问题是使用这行代码,将值放置在 TextBox 中后,将光标置于文本顶部:

ThisDocument.functionalComponentsTextBox.SelStart = 0

这基本上模拟了用户在 TextBox 中手动单击并按下 Up 键,直到他到达 TextBox 的顶部。这样,来自 ListBox 的选择现在存储在 TextBox 中,作为我们业务流程的一部分,可以将其内容复制和粘贴到任何地方。

以下是它之后的样子:与正确显示的标签方法相比,这是一个完美的匹配!额外的好处:文本是可选择的,并且 TextBox 是可自定义的,所以我从中删除了边框......无法区分!

修复后 TextBox 与 Label 方法的比较

于 2013-07-31T21:19:03.010 回答