通过宏将粗体和常规文本插入到单词中 - 交替问题
Inserting bold and regular text into word via macro - alternating issue
我有一个宏,其中一个参数是一个数组。对于数组中的每个元素,我向 table 添加一行,添加标准文本 "NOTE:",然后添加数组元素文本。这是我正在使用的宏的相关部分:
Sub fill(..., notes)
Dim tblNew As Table
Dim rowNew As Row
Dim celTable As Cell
Dim intCount As Integer
For Each element In notes
Set tblNew = ActiveDocument.Tables(2)
Set rowNew = tblNew.Rows.Add
tblNew.Cell(tblNew.Rows.Count, 1).Range.Select
Selection.Font.Bold = wdToggle
If Selection.Font.Underline = wdUnderlineNone Then
Selection.Font.Underline = wdUnderlineSingle
Else
Selection.Font.Underline = wdUnderlineNone
End If
Selection.TypeParagraph
Selection.TypeText Text:="NOTE:"
Selection.Font.Bold = wdToggle
If Selection.Font.Underline = wdUnderlineNone Then
Selection.Font.Underline = wdUnderlineSingle
Else
Selection.Font.Underline = wdUnderlineNone
End If
Selection.TypeText Text:=element
Next element
End Sub
现在这确实添加了所有行,它确实添加了 "NOTE:" 和数组元素文本部分,好的,问题在于粗体和下划线。我希望 "NOTE:" 加粗并加下划线,元素文本简单明了。对于上面的宏,第一行的 "NOTE:" 是 bold/underline 并且文本是正常的,但是对于下一行 "NOTE:" 是正常的并且元素文本是 bold/underline。该模式逐行交替。所以这是模式(减去下划线):
注意:
元素文本
注:
元素文本
注:
元素文本
...等等。我一直在玩,但不能让它每一行都一样,为什么它会做这种交替行为?
我明白 NOTE:
必须是粗体+下划线,后面的文字必须是普通的。如果这是正确的,请尝试以下代码:
Dim tblNew As Table
Dim rowNew As Row
Dim celTable As Cell
Dim intCount As Integer
Dim Notes As Variant
For Each element In Notes
Set tblNew = ActiveDocument.Tables(2)
Set rowNew = tblNew.Rows.Add
tblNew.Cell(tblNew.Rows.Count, 1).Range.Select
Selection.TypeParagraph
With Selection.Range
.Text = "NOTE:"
.Font.Bold = True
.Font.Underline = wdUnderlineSingle
End With
Selection.EndKey Unit:=wdLine
Selection.TypeParagraph
With Selection.Range
.Text = element
.Font.Bold = False
.Font.Underline = wdUnderlineNone
End With
Next element
我有一个宏,其中一个参数是一个数组。对于数组中的每个元素,我向 table 添加一行,添加标准文本 "NOTE:",然后添加数组元素文本。这是我正在使用的宏的相关部分:
Sub fill(..., notes)
Dim tblNew As Table
Dim rowNew As Row
Dim celTable As Cell
Dim intCount As Integer
For Each element In notes
Set tblNew = ActiveDocument.Tables(2)
Set rowNew = tblNew.Rows.Add
tblNew.Cell(tblNew.Rows.Count, 1).Range.Select
Selection.Font.Bold = wdToggle
If Selection.Font.Underline = wdUnderlineNone Then
Selection.Font.Underline = wdUnderlineSingle
Else
Selection.Font.Underline = wdUnderlineNone
End If
Selection.TypeParagraph
Selection.TypeText Text:="NOTE:"
Selection.Font.Bold = wdToggle
If Selection.Font.Underline = wdUnderlineNone Then
Selection.Font.Underline = wdUnderlineSingle
Else
Selection.Font.Underline = wdUnderlineNone
End If
Selection.TypeText Text:=element
Next element
End Sub
现在这确实添加了所有行,它确实添加了 "NOTE:" 和数组元素文本部分,好的,问题在于粗体和下划线。我希望 "NOTE:" 加粗并加下划线,元素文本简单明了。对于上面的宏,第一行的 "NOTE:" 是 bold/underline 并且文本是正常的,但是对于下一行 "NOTE:" 是正常的并且元素文本是 bold/underline。该模式逐行交替。所以这是模式(减去下划线):
注意:
元素文本
注:
元素文本
注:
元素文本
...等等。我一直在玩,但不能让它每一行都一样,为什么它会做这种交替行为?
我明白 NOTE:
必须是粗体+下划线,后面的文字必须是普通的。如果这是正确的,请尝试以下代码:
Dim tblNew As Table
Dim rowNew As Row
Dim celTable As Cell
Dim intCount As Integer
Dim Notes As Variant
For Each element In Notes
Set tblNew = ActiveDocument.Tables(2)
Set rowNew = tblNew.Rows.Add
tblNew.Cell(tblNew.Rows.Count, 1).Range.Select
Selection.TypeParagraph
With Selection.Range
.Text = "NOTE:"
.Font.Bold = True
.Font.Underline = wdUnderlineSingle
End With
Selection.EndKey Unit:=wdLine
Selection.TypeParagraph
With Selection.Range
.Text = element
.Font.Bold = False
.Font.Underline = wdUnderlineNone
End With
Next element