0

我是使用 VBA 和 Word 2010 的新手。

我有一个 Word 文档,其中包含一些使用内容控件(即富文本控件)的文本字段。

我希望其中一个名为(Title)的“testbox”作为文档打印次数的计数器。

我有一些来自 Excel 的有效代码。可以在 MS Word 中使用它吗?如何与内容控件而不是 Excel 中的单元格进行通信?

Private Sub Workbook_BeforePrint(Cancel As Boolean) 
  Cancel = True 
  Application.EnableEvents = False 
  ActiveSheet.PrintOut 
  Range("A1").Value = Range("A1").Value + 1
  Application.EnableEvents = True 
End Sub
4

1 回答 1

0

您显示的代码的基本方法应该在 Word 中工作,您只需要查找对象、方法和属性的适当名称。例如 Document_BeforePrint 和 ActiveDocument.Print。

Word 没有 EnableEvents 属性,因此您需要创建自己的一个或多个方法来关闭您在应用程序级别定义的事件。这些方法的外观和要求是关于如何在 Office 中使用应用程序级事件的讨论的一部分 - VBA 语言参考的一部分 ( https://msdn.microsoft.com/en-us/library/office/ff821218 .aspx)。

可以使用 Document.SelectContentControlsByTitle 方法按其 Title 拾取 ContentControl。这将返回具有相同标题的内容控件数组。如果你只有一个,那么像这样:

Dim cc As Word.ContentControl
Dim ccs as Word.ContentControls
Set ccs = ActiveDocument.SelectContentControlsByTitle("testbox")
Set cc = ccs(1)
cc.Range.Text = Cstr(CInt(cc.Range.Text) + 1)
于 2015-12-20T19:07:45.430 回答