excel vba搜索多个条件

excel vba搜索多个条件,vba,excel,Vba,Excel,当我运行这个VBA宏时,尽管输入了不同的护士id,我还是得到了相同的结果。谢谢,这段代码来自我观看的视频,经过修改,可以使用多个条件 Sub finddata() Dim nursenumber As String Dim finalrow As Integer Dim i As Integer Dim course As Integer Dim nurserow As Integer nursenumber = InputBox("please

当我运行这个VBA宏时,尽管输入了不同的护士id,我还是得到了相同的结果。谢谢,这段代码来自我观看的视频,经过修改,可以使用多个条件

Sub finddata()
    Dim nursenumber As String
    Dim finalrow As Integer
    Dim i As Integer
    Dim course As Integer
    Dim nurserow As Integer

    nursenumber = InputBox("please enter nurse number")
    nurserow = InputBox("please enter nurse row")
    finalrow = Sheets("S1").Range("A10000").End(xlUp).Row
    course = ADORIE

    'fire update
    For i = 2 To finalrow
        Worksheets("S1").Activate
        If Cells(i, 1) = nursenumber & Cells(i, 7) = "FIRE" Then
            Cells(i, 9).Copy
            Worksheets("database").Activate
            Cells(nurserow, 2).PasteSpecial
        End If

        'cpr
        If Cells(i, 1) = nursenumber & Cells(i, 7) = "CPRNURL4" Or _
           Cells(i, 7) = "BUCPRBYS" Or Cells(i, 7) = "BUCPREMS" Or _
           Cells(i, 7) = "CPRACLSR" Or Cells(i, 7) = "CPRADULT" Or _
           Cells(i, 7) = "CPRALIED" Or Cells(i, 7) = "CPRBASIC" Or _
           Cells(i, 7) = "CPRBYST" Or Cells(i, 7) = "CPRCO567" Or _
           Cells(i, 7) = "CPRMANHA" Or Cells(i, 7) = "CPRMCORP" Or _
           Cells(i, 7) = "CPRNURL4" Then

            Cells(i, 9).Copy
            Worksheets("database").Activate
            Cells(nurserow, 3).PasteSpecial

    Next i 
End Sub

在我上面的评论之后,您的代码也在尖叫着要一个
选择案例
,而不是您的多个

代码


此代码不应编译(至少是您与我们共享的部分),您不应关闭第二个
If
语句,也不应关闭
If Cells(i,1)=nursenumber&Cells(i,7)=“FIRE”,那么
不是有效的
如果Cells(i,1)=nursenumber和Cells(i,7)=“FIRE”那么
您阅读并尝试过我下面答案中的代码了吗?有什么反馈吗?@YowE3K:)没有,我一直在以慢得多的速度进行,大约2周
Sub finddata()

Dim nursenumber As String
Dim finalrow As Integer
Dim i As Integer
Dim course As Integer
Dim nurserow As Integer

nursenumber = InputBox("please enter nurse number")
nurserow = InputBox("please enter nurse row")
finalrow = Sheets("S1").Range("A10000").End(xlUp).Row
course = ADORIE

With Worksheets("S1")
    For i = 2 To finalrow
        If .Cells(i, 1) = nursenumber Then
            Select Case .Cells(i, 7).Value
                Case "FIRE"
                    .Cells(i, 9).Copy Destination:=Worksheets("database").Cells(nurserow, 2)

                Case "CPRNURL4", "BUCPRBYS", "CPRACLSR", "CPRADULT", "CPRALIED", "CPRBASIC", "CPRBYST", "CPRCO567", "CPRMANHA", "CPRMCORP", "CPRNURL4"
                    .Cells(i, 9).Copy Destination:=Worksheets("database").Cells(nurserow, 3)

            End Select
        End If
    Next i
End With

End Sub