[英]Why do I receive a Type mismatch error using If Not Range.Value Like in vba?
我试图删除“ A”列中的值与以下字段格式不匹配的所有行:(1)7位数字,(2)姓,名,(3)日期...或以下值( 4)不便(5)不便。
第9行不断抛出“类型不匹配”错误。 有任何想法吗?
Public Sub DeleteRows()
Dim RowToTest As Long
Call setVariables '***sets wsName variable
'Code to delete unneeded rows based on cell value in Column "A"
For RowToTest = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
With ActiveWorkbook.Worksheets(wsName).Cells(RowToTest, 1)
If Not .Value Like "???????" Or "*[,]*" Or "*?[/]*?[/]*??" _
Or "?????[:]*" Then
If Not .Value = "INPATIENT" Or "OUTPATIENT" Then
Rows(RowToTest).EntireRow.Delete
End If
End If
End With
Next RowToTest
End Sub
您的函数应如下所示:
Public Sub DeleteRows()
Dim RowToTest As Long
Call setVariables '***sets wsName variable
'Code to delete unneeded rows based on cell value in Column "A"
For RowToTest = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
With ActiveWorkbook.Worksheets(wsName).Cells(RowToTest, 1)
If Not (.Value Like "???????" Or .Value Like "*[,]*" Or .Value Like "*?[/]*?[/]*??" Or _
.Value Like "?????[:]*" Or .Value = "INPATIENT" Or .Value = "OUTPATIENT") Then
ActiveWorkbook.Worksheets(wsName).Rows(RowToTest).Delete
End If
End With
Next RowToTest
End Sub
用这个:
If Not .Value Like "???????" And _
Not .Value Like "*[,]*" And _
Not .Value Like "*?[/]*?[/]*??" And _
Not .Value Like "?????[:]*" And _
.Value <> "INPATIENT" And _
.Value <> "OUTPATIENT" Then
Rows(RowToTest).EntireRow.Delete
End If
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.