我正在寻找帮助将Excel宏中记录的COUNTIF
范围转换为可变范围。我正在使用Excel VBA来处理每月有大量记录的月度文件。
我录制了一个宏来修改和过滤记录,并且能够在此站点的帮助下将大多数范围转换为可变范围。但是,我正在努力将范围转换为下面显示的COUNTIF
函数的可变范围,该函数使用颜色标识A列中重复的ID
。然后按颜色过滤该列。
Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=COUNTIF($A$2:$A$7977,A2)>=2"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = True
Range(“A1”).Select
Selection.AutoFilter
ActiveSheet.Range(“$A$1:$P$7977”).AutoFilter Field:=1, Criteria1:=RGB(255,255,0),Operator:=xlFilter Cell Color
答案 0 :(得分:0)
您需要一个可以帮助您找到列的最后一行的函数。见下文:
Function GetLastRow(sht As Worksheet, col as String) As Integer
GetLastRow = sht.Range(col & CStr(sht.Rows.Count)).End(xlUp).row
End Function
在您需要放置范围末尾的每个位置调用此函数,并使用工作表的名称和列的字母作为参数。请参阅下文了解它的工作原理:
"=COUNTIF($A$2:$A$" & GetLastRow(Sheets("Sheet1"),"A") & ",A2)>=2"