2017-02-02 23 views
0

這是更新的代碼。我現在遇到了不匹配錯誤。如果有人能提供一些幫助,這將是非常好的。提前致謝!不匹配錯誤/代碼不起作用

Sub Macro2() 

Dim rowcount As Long 

Dim target As Variant, startcell4 As Range 

Set startcell4 = ActiveSheet.Cells(2, 1) 

rowcount = Range(Range("E2"), Range("E2").End(xlDown)).Rows.Count 

For i = 2 To rowcount + 1 

    If Not ActiveSheet.Cells(i, 26) = ActiveSheet.Cells(i + 1, 26) Then 

    Set target = Application.Match(ActiveSheet.Cells(i, 26), Worksheets(19).Range("A6:A3000"), 0) 


     If Not IsError(target) Then 

     ActiveSheet.startcell4.Offset(0, 17).Value = Worksheets(19).Cells(target + 6, 10) 

     Set startcell4 = ActiveSheet.Cells(i + 1, 26) 

     End If 

    End If 

Next i 

End Sub 
+0

的'比賽function'將返回範圍的行號( 「A6:A3000」),其中可以發現ActiveSheet.Cells(I,26)的值。例如,如果單元格(i,26)可以找到單元格A9,則匹配函數將返回值3,因爲它是範圍(「A6:A3000」)中的第三個值。 –

+0

我根據你所說的更新了它,但我仍然沒有得到輸出。 – kmalik

+1

將「設置目標= ...」更改爲「目標= ...」 – user3598756

回答

0

更改:

  • 「設置目標= ...」 到 「TARGET = ...」

  • 「ActiveSheet.startcell4」 到 「startcell4」

  • 稍作重構

來到這個

Sub Macro2() 
    Dim rowcount As Long 
    Dim target As Variant, startcell4 As Range 

    Set startcell4 = Cells(2, 1) 
    rowcount = Range("E2").End(xlDown).Row 
    For i = 2 To rowcount 
     If Not Cells(i, 26) = Cells(i + 1, 26) Then 
      target = Application.Match(Cells(i, 26), Worksheets(19).Range("A6:A3000"), 0) 
      If Not IsError(target) Then 
       startcell4.Offset(0, 17).Value = Worksheets(19).Cells(target + 6, 10) 
       Set startcell4 = Cells(i + 1, 26) 
      End If 
     End If 
    Next i 
End Sub