【发布时间】:2021-06-28 13:51:25
【问题描述】:
我想识别(突出显示)工作表第 4 列中的单元格,该单元格在同一行中包含单词“November”,但位于同一工作表的第 1 列中。
代码部分成功,因为宏确实在第 1 列中识别出单词“November”,但代码将突出显示第 4 列的整个范围,而不仅仅是第 4 列中与“November”位于同一行的单元格”。
一旦我能够让这段代码工作,我想将该行中突出显示的单元格的文本更改为“False”。
因此,在实践中,单词“November”将位于单元格 A35 中,而单词“True”将位于单元格 D35 中。我希望宏突出显示单元格 D35 并将单元格文本更改为“False”,因为单元格 A35 是“十一月”。
Sub Formatting()
Dim Excel_File As Workbook
Dim Tab_Report As Worksheet
Dim tbl As ListObject
Dim rng1 As Range
Dim rng2 As Range
Set Excel_File = ThisWorkbook
Set Tab_Report = Excel_File.Worksheets("Tab_Report")
Set tbl = Tab_Report.ListObjects("Excel_File")
Set rng1 = tbl.ListColumns(1).DataBodyRange
Set rng2 = tbl.ListColumns(4).DataBodyRange
For Each cell In rng1
If cell.Text = "November" Then rng2.Interior.Color = 11851260
Next cell
End Sub
【问题讨论】:
-
试试
cell.offset(,3).Interior.Color = 11851260。您已将rng2定义为整个列。 -
太棒了,这很有效,我如何为您的答案提供信用?所以实际上,我什至不需要定义 rng2。你知道我将如何将附加步骤添加到上面列出的宏中吗?
-
@SJR 我可以用这个
vba For Each cell In rng1 If cell.Text = "November" Then cell.Offset(, 3) = "False" Next cell解决了