这可以正常工作,但是我试图学习如何更正确地格式化它,就像XLS宏生成的代码看起来一样。在这里,我要过滤此列中所有具有黄色的行。
sheet.UsedRange.AutoFilter field:=1, Criteria1:=RGB(255, 255, 0), Operator:=xlFilterCellColor
这不起作用
sheet.UsedRange.AutoFilter(1,RGB(255,255,0),xlFilterCellColor)
也不
sheet.UsedRange.AutoFilter(1,RGB(255,255,0),xlFilterCellColor,,)
,除非您要返回值
sheet.UsedRange.AutoFilter 1, RGB(255,255,0), xlFilterCellColor
参数值必须处于预期的"正常"顺序中。如果您打算将它们添加到"订购外"中,则命名参数将正确的值放在正确的参数中。
sheet.UsedRange.AutoFilter Operator:=xlFilterCellColor, Criteria1:=RGB(255, 255, 0), field:=1
一些VBA函数返回有用的值。在这些情况下,使用参数列表上的括号。
dim r as variant
r = sheet.UsedRange.AutoFilter(1, RGB(255,255,0), xlFilterCellColor)
debug.print r
在这种情况下,r是正确的。
使用子过程很简单。
Sub test()
myFilter Sheet1.UsedRange, 1, RGB(255, 255, 0)
End Sub
Sub myFilter(rng As Range, i As Integer, color As Long)
rng.AutoFilter field:=i, Criteria1:=color, Operator:=xlFilterCellColor
End Sub