如何正确格式化这个在vba中
这工作正常,但我想学习如何正确格式这更像一个正常的function与什么xlsmacros生成的代码看起来像。 在这里我正在过滤所有在这个列中有黄色的行。
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
在这种情况下,无论.AutoFilter是否显示logging,r都为True。
使用子程序很简单。
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