如何根据名称select列而不使用范围(“A”)?

我有下面的代码,它工作得很好。 但是,而不是范围(“A”),我想select一个名字的列。

Option Explicit '// Campare and Hilight Unique Sub CompareHighlightUnique() Dim Range1 As Range Dim Range2 As Range Dim i As Integer Dim j As Integer Dim isMatch As Boolean For i = 2 To Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row isMatch = False Set Range1 = Sheets("Sheet1").Range("A" & i) For j = 1 To Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Row Set Range2 = Sheets("Sheet2").Range("A" & j) If StrComp(Trim(Range1.Text), Trim(Range2.Text), vbTextCompare) = 0 Then isMatch = True Exit For End If Set Range2 = Nothing Next j If Not isMatch Then Range1.Interior.Color = RGB(255, 0, 0) End If Set Range1 = Nothing Next i End Sub 

您的更新代码如下

 Option Explicit '// Campare and Hilight Unique Sub CompareHighlightUnique() Dim Range1 As Range, Range2 As Range, i&, j&, isMatch As Boolean Dim Z&: Z = Cells.Find("Column Name", , , , , , True).Column 'here For i = 2 To Sheets("Sheet1").Cells(Rows.Count, Z).End(xlUp).Row 'here isMatch = False Set Range1 = Sheets("Sheet1").Cells(i, Z) 'here For j = 1 To Sheets("Sheet2").Cells(Rows.Count, Z).End(xlUp).Row 'here Set Range2 = Sheets("Sheet2").Cells(j, Z) 'and here If StrComp(Trim(Range1.Text), Trim(Range2.Text), vbTextCompare) = 0 Then isMatch = True Exit For End If Set Range2 = Nothing Next j If Not isMatch Then Range1.Interior.Color = vbRed End If Set Range1 = Nothing Next i End Sub 

用所需的列名replacecolumn name (variablesZ