从 header 列获取文本

Getting text from header columns

我有一个带有 three-column header 的 MS Word 文档,如下面的屏幕截图所示。 请建议一个 VBA 宏来获取每一列中的文本(在我的例子中是“foo”、“bar”和“baz”)。

到目前为止我已经试过了

Sub Test()
  MsgBox Documents(1).Sections(1).Headers(wdHeaderFooterPrimary).Range.Text
End Sub
enter code here

,但它 returns 带有零的文本(“foo0bar0baz”),这似乎不适合在一般情况下打破此文本,因为列文本本身可以包含零(例如“foo0”, “0bar00”和“0baz”)。

您使用 Split 函数创建了一个文本数组。您将需要知道用于分隔列的字符是什么。它可能是普通标签或对齐标签。

对于普通标签:

Sub SplitHeader()
   Dim colHeads As Variant
   colHeads = Split(ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range.Text, vbTab)
   Debug.Print colHeads(0)
   Debug.Print colHeads(1)
   Debug.Print colHeads(2)
End Sub

对于对齐选项卡:

Sub SplitHeader()
   Dim colHeads As Variant
   colHeads = Split(ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range.Text, Chr(48))

End Sub