我正在尝试编写一段代码,我想根据列是否包含这些值之一(“A”,“B”,“G”,“P”,“L”,“M”,“ C”、“H”、“K”、“T”、“W”、“E”、“N”、“S”、“D”、“X”、“U”、“F”)。但有时该列不具有这些值之一(例如,在一个项目中,没有包含“N”和“L”的数据)。在这种情况下,程序会给我一个错误。我该如何解决这个问题?
我的代码如下:
Set sh = wbmain.Worksheets("depth")
sh.Range("A1:J" & sh.Range("J" & Rows.Count).End(xlUp).Row).AutoFilter Field:=10, Criteria1:=Array( _
"A", "B", "G", "P", "L", "M", "C", "H", "K", "T", "W", "E", "N", "S", "D", "X", "U", "F"), Operator:= _
xlFilterValues
sh.Range("C1:I" & sh.Range("C" & Rows.Count).End(xlUp).Row).SpecialCells(xlCellTypeVisible).Select
我认为错误简历下一步可能会起作用,但我不确定如何实现它,就好像“M”有错误一样,那么它只会跳过“M”之后的所有内容(而不是过滤“C”, “H”、“K”、“T”、“W”、“E”、“N”、“S”、“D”、“X”、“U”、“F”)...
请尝试一下。
Set sh = wbmain.Worksheets("depth")
sh.Range("A1:J" & sh.Range("J" & Rows.Count).End(xlUp).Row).AutoFilter Field:=10, Criteria1:=Array( _
"A", "B", "G", "P", "L", "M", "C", "H", "K", "T", "W", "E", "N", "S", "D", "X", "U", "F"), Operator:= _
xlFilterValues
Dim visRng As Range
On Error Resume Next
Set visRng = sh.Range("C1:I" & sh.Range("C" & Rows.Count).End(xlUp).Row).SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If Not visRng Is Nothing Then visRng.Select