使用VBA在同一个Word表格单元格中的不同样式

时间:2013-07-31 14:07:12

标签: vba word-vba

我有一个XLS到Word文档自动化项目,其中需要将2个字符串String1String2分配给Word表格单元格。挑战在于String1采用红色斜体字体样式,String2采用黑色普通字体样式。我如何实现这一目标?

我现在的代码使所有文本都为红色itallic,这是默认的表格字体样式。

With wdoc.Tables(pos)
     .Rows(1).Cells(1).Range.Text = String1
     wapp.Selection.Font.Italic = False
     wapp.Selection.Font.Color = wdColorAutomatic
     .Rows(1).Cells(1).Range.Text = .Rows(1).Cells(1).Range.Text & String2
End with

1 个答案:

答案 0 :(得分:1)

我能想到的第一个想法是根据文本在整个文档中的位置使用对范围的引用。以下代码查找了两个属性的值:单元格文本的.Start.End,检查String1String2文本的长度。全部用作Document.Range(Start,End)参数。因此,代码将如下所示(在代码之后添加:

With wdoc.Tables(pos).Rows(1).Cells(1).Range
        With wdoc.Range(.Start, .Start + Len(String1)).Font
            .Italic = True
            .Color = vbRed
        End With
        With wdoc.Range(.End - Len(String2), .End).Font
            'do nothing assuming text is black/standard
            'or change to black if necessary
        End With
End With