我有一个宏通过一个助手列过滤掉特定的记录,然后将任何过滤的行复制/粘贴到另一个工作表。帮助列返回0(不适用)或1(适用),宏应该复制标记为“1”的所有记录。
问题是,如果我在helper列中没有“1”记录,宏将所有“0”(=所有条目)复制到新工作表,很可能是因为它找不到任何值为“1”的记录。
如何在应用过滤器之前检查helper列是否有带“1”的记录?最好是,如果没有带有“1”的记录,我跳过整个with
,并继续代码的下一步。
With ThisWorkbook
' track last row for comment insert
lastrow_fb = Sheets("Monthly Comments").Range("C65536").End(xlUp).Offset(1).Row
' filter all records where helper column has value "1"
.Sheets(DataYear & "_YTD").Range("SY2").AutoFilter Field:=519, Criteria1:="1"
' copy meta data
.Sheets(DataYear & "_YTD").Range("F3:I" & lastrow).Copy
.Sheets("Monthly Comments").Range("C" & lastrow_fb).PasteSpecial xlValues
' copy positive highlight
.Sheets(DataYear & "_YTD").Range("CI3:CI" & lastrow).Copy
.Sheets("Monthly Comments").Range("C" & lastrow_fb).Offset(0, 4).PasteSpecial xlValues
' copy negative improvement suggestion
.Sheets(DataYear & "_YTD").Range("CK3:CK" & lastrow).Copy
.Sheets("Monthly Comments").Range("C" & lastrow_fb).Offset(0, 5).PasteSpecial xlValues
' write outlet name
.Sheets("Monthly Comments").Range(Range("B65536").End(xlUp).Offset(1), Range("C65536").End(xlUp).Offset(0, -1)).Value = "Name"
' unset helper column filter for next loop
.Sheets(DataYear & "_YTD").Range("SY2").AutoFilter Field:=519
End With
1条答案
按热度按时间oknrviil1#
存在许多方法来确定滤波器范围中的滤波元素的数量和/或存在。下面是其中的一些
图纸: