【发布时间】:2018-10-18 19:47:21
【问题描述】:
大家好,我在 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 1、Language 2等列表(我将其命名为listLanguageHeaderA,第二个用于Java、@ 987654330@等列表(我将其命名为listLanguageHeaderB)。然后在Sheet2的单元格B2中使用此条件格式公式:=COUNTIFS(listLanguageHeaderA,$A2,listLanguageHeaderB,B$1)>0并将条件格式应用于范围:=$B$2:$G$7 -
...或者你可以这样做@tigeravatar:P