我有一个存储了6条信息的数组,其中之一是存储条件。有四种不同的存储条件(-80C,RT,2-8,-20C)。我要遍历数组,然后填充一个Avery Label模板,它是一个表。我可以很好地填充标签模板,但是我想更改存储条件字的字体/颜色。我在隔离单元的特定元素时遇到了麻烦。
这是我所拥有的:
'populating cell with array containing information
.Cell(r, c).Range.Text = arrEl(x, 0) & " "& arrEl(x, 1) & " "& arrEl(x, 2)
.Cell(r, c).Range.Text =.Cell(r,c).Range.Text + arrEl(x, 3) + " "+ arrEl(x, 4) + " "+ arrEl(x, 5)
'Changing font and style of each cell
With .Cell(r, c).Range
.Font.Name = "Times New Roman"
.Font.Size = 8
Debug.Print .Paragraphs(2).Range.Words.Last
'I've tried .Words.Count to tell he how many words
'I've tried .Words(1)
End With
我正在使用Debug.Print定位并隔离存储条件(即arrEl(x,5)),一旦它进入Word的单元格中。我遇到两个问题:
有什么建议吗?
答案 0 :(得分:0)
使用Word VBA,以下代码可识别表单元格中的文本:
ActiveDocument.Tables(1).Cell(1,1).Range.Text
您可以使用以下命令更改单元格中单词的字体特征:
ActiveDocument.Tables(1).Cell(1,1).Range.Words(2).Font.ColorIndex = 3
或在整个文本中使用以下内容:
ActiveDocument.Tables(1).Cell(1,1).Range.Font.ColorIndex = 3
如果通过Excel对此进行编码,请检查您是否引用了Word及其相应的表。
您可以根据需要修改单元格中的文本
ActiveDocument.Tables(1).Cell(1,1).Range.Text = "foo bar"
您可以通过以下方式获得最后的提示
ActiveDocument.Tables(1).Cell(1,1).Range.Words( _
ActiveDocument.Tables(1).Cell(1,1).Range.Words.Count - 1)
尽管这可以通过中间引用来简化。 Count - 1
忽略了结束单元格标记(或任何被称为的单元格标记)。
答案 1 :(得分:0)
您说存储条件为'arrEl(x,5)'
如果是这样,则需要更改此行
.Cell(r, c).Range.Text =.Cell(r,c).Range.Text + arrEl(x, 3) + " "+ arrEl(x, 4) + " "+ arrEl(x, 5)
到
.Cell(r, c).Range.Text =.Cell(r,c).Range.Text & arrEl(x, 3) & " "+ arrEl(x, 4) & " "
Set my_range = .cell(r,c).range
my_range.collapse direction:=wdcollapseend
.Cell(r,c).range.text = .Cell(r,c).range.text & arrEl(x, 5)
my_range.end = .Cell(r,c).range.end
这时,my_range应该仅包含arrEl(x,5)中的文本,因此您现在可以将所需的字体格式应用于my_range。
您当然需要在代码中插入Dim my_range作为Word.range
编辑
为确保我们不在范围内的任何单元格或段落结尾标记,可以使用.MoveEndUntil方法。在范围示例中,提供的代表愤怒结束的字符集为“ CT8”。这样我们就可以做到
my_range.MoveEndUntil cset:="CT8", count:=wdbackwards