2017-07-20 93 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周 –