2017-07-20 174 views
1

当我运行这个VBA宏,我得到了相同的结果,尽管把不同的护士ID感谢,这段代码来自我看,并已修改多个标准工作视频Excel VBA中搜索多个标准

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 
+3

这个代码不应该编译(至少你与我们分享的部分),你是不是关闭第二'If'声明,也'如果细胞(我,1 )= nursenumber&Cells(i,7)=“FIRE”然后''不是有效的'AND'它应该是'If Cells(i,1)= nursenumber AND Cells(i,7)=“FIRE”Then' –

+0

你有没有在下面的答案中阅读并尝试过这些代码?任何反馈 ? –

回答

3

按照我上面的评论,同样,你的代码尖叫为Select Case,而不是你的多个Or

代码

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 
+0

直到神奇20k的另一两天? – YowE3K

+0

@ YowE3K :)不,我一直以慢得多的速度服用,更像是2周 –