从 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
我有一个带有 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