我有一个存储了6条信息的数组,其中一条是存储条件。存在四种不同的存储条件(-80℃,RT,2-8,-20℃)。我正在迭代数组,然后填充Avery标签模板,这是一个表。我可以很好地填充标签模板,但我想更改存储条件字的字体/颜色。我无法隔离细胞的特定元素。
这是我有的:
'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中的单元格中。我遇到两个问题:
有什么建议?
你说存储条件是'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
使用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
忽略了结束细胞标记(或任何它被称为)。