【问题标题】:Excel VBA highlight cell where Rows and Column Match with 2 sheetsExcel VBA突出显示行和列与2张匹配的单元格
【发布时间】:2018-10-18 19:47:21
【问题描述】:

Sheets which i have

大家好,我在 sheet1 中有两列,其中有多行,在 sheet2 中有相同的列,但在 sheet2 中,第二列的值变成列标题,我想突出显示 sheet2 中值与 sheet1 匹配的单元格。在此先感谢,我希望它清楚。还附上截图。我编写了以下代码,但这不能正常工作。谢谢你的帮助

Public Sub test3()

Dim rng As Range
Dim aNumber As Range
Dim bNumber As Range
Dim rng2 As Range
Dim LastColumn As Long
Dim iRow As Long
Dim iCol As Long
Set rng = Sheets("Sheet2").Range("B2:B" & Range("B" & Rows.Count).End(xlUp).row)
LastColumn = Sheets("Sheet2").Range("D1").CurrentRegion.Columns.Count
Set rng2 = Sheets("Sheet2").Range(Cells(1, 1), Cells(1, LastColumn))
'MsgBox rng2.Address
For iRow = 2 To 6 'this i need last row count
For iCol = 2 To 6 ''this i need last row count
    Set aNumber = Sheets("Sheet1").Cells(iRow, 1) 'Row, Column Searching A
    Set bNumber = Sheets("Sheet1").Cells(iCol, 2) 'Row, Column Searching B

    If Application.WorksheetFunction.CountIf(rng, aNumber) > 0 Then
    If Application.WorksheetFunction.CountIf(rng2, bNumber) > 0 Then

        ColNum = Application.WorksheetFunction.Match(bNumber, rng2, 0)
        RowNum = Application.WorksheetFunction.Match(aNumber, rng, 0)
        'MsgBox (RowNum + 1)
        'MsgBox (ColNum)
        Sheets("Sheet2").Cells(RowNum + 1, ColNum).Interior.Color = vbGreen
    Else
        'MsgBox aNumber & " does not exist in range " & rng.Address
    End If
    End If
Next iCol
Next iRow
End Sub

【问题讨论】:

  • 在你的第一个表中,第二行应该是Language 2 | Jave 吗?或者确实是Language 1 | Jave
  • ** 语言 1 Java,行可以重复,但如果您在组合时想要唯一值,我们也可以添加第三列
  • Sheet1 上创建两个命名范围,第一个用于Language 1Language 2 等列表(我将其命名为listLanguageHeaderA,第二个用于Java、@ 987654330@等列表(我将其命名为listLanguageHeaderB)。然后在Sheet2的单元格B2中使用此条件格式公式:=COUNTIFS(listLanguageHeaderA,$A2,listLanguageHeaderB,B$1)>0并将条件格式应用于范围:=$B$2:$G$7
  • ...或者你可以这样做@tigeravatar:P

标签: excel vba loops match


【解决方案1】:

使用辅助列 C (=CONCAT($A2,$B2)),您可以使用条件格式来做到这一点。

设置您的帮助列:

然后,设置一个新的条件格式规则。

规则:

=IF(ISERROR(INDEX($C$3:$C$8,MATCH(CONCAT($E3,F$2),$C$3:$C$8,0))),FALSE,TRUE)

适用于范围:

=$F$3:$K$8

您可能需要调整这些范围,但这对我有用:

【讨论】:

  • 感谢布鲁斯的帮助,它正在工作。是否有可能如果某些单元格已经用蓝色突出显示,那么我不想在这些单元格上应用格式?
  • @Dani 是什么让它们变成蓝色(意思是为什么的逻辑)?
  • 那些被手动突出显示为蓝色没有蓝色逻辑我的意思是如果单元格已经突出显示为蓝色,那么不要对这些单元格应用格式
  • 你可以说如果课程停止了,然后用蓝色突出显示,但我们不想为断开的课程添加列
  • 我有 2 张 Excel 表格。表 1 有以下记录: 沙龙教练日期金额 Sal1 col1 11/7/2018 500 Sal1 col1 11/1/2018 400 Sal1 col1 10/25/2018 600 Sal1 col1 10/19/2018 700 Sal1 col1 10/1/2018 250等等表 2 有以下 cloumns 和记录:最近 4 个日期的沙龙教练平均值 Sal1 col1 ???我想找到符合标准沙龙和教练的 4 个最新日期的平均金额。提前致谢。
猜你喜欢
  • 2013-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-26
  • 2020-10-02
  • 1970-01-01
  • 2020-01-19
  • 2017-10-29
相关资源
最近更新 更多