我想对该区域执行过滤并删除与该区域不匹配的其余行。该表没有公式,只有值和字符。这是我正在处理的更大代码的一部分,所以我只会发布这部分内容,这是我第一次看到错误,因此对于其他工作表,它们的工作方式正好符合我声明的方式。类型不匹配运行时错误(13)vba
有错误,并不会经过这里If InStr(1, Rng10.Cells(q, 1).Value, "NW") = 0 Then
我的数据有一个辅助列是W和我过滤它的线。我确定我使用的变量没有重复。 (我用过,s,t,m,n等等......)我试图将q声明为double或variate,但它们都不起作用。
sub test()
Worksheets("A").Activate
'filter
Dim sh9 As Worksheet
Set sh9 = Sheets("A")
Dim LR16 As Long
Dim Rng10 As Range
Dim q As Long
LR16 = sh9.Cells(Rows.Count, "B").End(xlUp).Row
Set Rng10 = Range("W5:W" & LR16 - 1)
For q = Rng10.Rows.Count To 1 Step -1
If InStr(1, Rng10.Cells(q, 1).Value, "NW") = 0 Then
Rng10.Cells(q, 1).EntireRow.Delete
End If
Next q
end sub
如果您将提到的行更改为'If InStr(1,Rng10.Cells(q,1).Value,“NW”)<1 Then',您的代码是否可以工作?你确定提到的单元格包含字符串吗? – reporter
它仍然给我同样的错误,列W有NW,N东,SE和#N/A的值,但是,我以前的工作表具有相同的情况,我没有这个问题。 – sc1324
有你的错误。您的单元格包含显示为“#N/A”的错误,而不是*表示“#N/A”的文本。 – CLR