簡體   English   中英

為什么在vba中使用If Not Range.Value會收到類型不匹配錯誤?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM