根据内容设置 table 单元格的颜色
Set the color of a table cell depending on the content
我正在尝试在 MS Word 2016 中编写 VBA 代码以填充包含特定字符串的单元格(在我的例子中是 "–"
)。我试过这样的事情:
Sub CellsColorFill()
Dim tTable As Table
Dim cCell As Cell
For Each tTable In ActiveDocument.Range.Tables
For Each cCell In tTable.Range.Cells
If cCell.Range = "-" Then
Selection.Shading.Texture = wdTextureNone
Selection.Shading.ForegroundPatternColor = wdColorAutomatic
Selection.Shading.BackgroundPatternColor = -603923969
End If
Next
Next
Set oCell = Nothing
Set tTable = Nothing
End Sub
但是不知道为什么,执行的时候没有效果。这个任务怎么完成?
注意 - 最好在模块顶部使用 Option Explicit
以帮助您指出未声明的变量。 oCell
未声明,我认为这是 cCell
的拼写错误
要检查字符串是否包含某个字符串,可以使用InStr
检查returns是否为非0值(0表示未找到)
Option Explicit
Sub CellsColorFill()
Dim tTable As Table
Dim cCell As Cell
For Each tTable In ActiveDocument.Range.Tables
For Each cCell In tTable.Range.Cells
If InStr(cCell.Range.Text, "-") <> 0 Then
cCell.Shading.Texture = wdTextureNone
cCell.Shading.ForegroundPatternColor = wdColorAutomatic
cCell.Shading.BackgroundPatternColor = -603923969
End If
Next
Next
End Sub
我正在尝试在 MS Word 2016 中编写 VBA 代码以填充包含特定字符串的单元格(在我的例子中是 "–"
)。我试过这样的事情:
Sub CellsColorFill()
Dim tTable As Table
Dim cCell As Cell
For Each tTable In ActiveDocument.Range.Tables
For Each cCell In tTable.Range.Cells
If cCell.Range = "-" Then
Selection.Shading.Texture = wdTextureNone
Selection.Shading.ForegroundPatternColor = wdColorAutomatic
Selection.Shading.BackgroundPatternColor = -603923969
End If
Next
Next
Set oCell = Nothing
Set tTable = Nothing
End Sub
但是不知道为什么,执行的时候没有效果。这个任务怎么完成?
注意 - 最好在模块顶部使用 Option Explicit
以帮助您指出未声明的变量。 oCell
未声明,我认为这是 cCell
要检查字符串是否包含某个字符串,可以使用InStr
检查returns是否为非0值(0表示未找到)
Option Explicit
Sub CellsColorFill()
Dim tTable As Table
Dim cCell As Cell
For Each tTable In ActiveDocument.Range.Tables
For Each cCell In tTable.Range.Cells
If InStr(cCell.Range.Text, "-") <> 0 Then
cCell.Shading.Texture = wdTextureNone
cCell.Shading.ForegroundPatternColor = wdColorAutomatic
cCell.Shading.BackgroundPatternColor = -603923969
End If
Next
Next
End Sub