为什么我收到types不匹配错误使用If不Range.Value像在vba中?

(1)7位数字,(2)姓氏,名字,(3)date…或下列值( 4)住院(5)门诊。

第9行不断抛出“types不匹配”错误。 有任何想法吗?

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 

你的function应该是这样的:

 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