根據值是否匹配從sheet2複製到sheet1

根據值是否匹配從sheet2複製到sheet1

此程式碼的目標是迭代 中的列sheet1並檢查每個值是否與 中的行中的值相符sheet2。如果值匹配,則將 5 行資訊從sheet2複製到sheet1當時所在的特定行。

問題:

  • if 語句所在的第一行出現錯誤 1004。
  • 我想Next b也會拋出一個錯誤

VBA程式碼:

For i = 8 To 17
    For b = 7 To 21
        If Sheets("Sheet1").Range(i, 2).Value = Sheets("Sheet2").Range(b, 1).Value Then
        Sheets("Sheet2").Range("b,1:b,7").Copy Sheets("Sheet1").Range(i, 6)
        Next b
        End If
Next i

答案1

為了將範圍的行和列指定為數字,您必須使用Cells代替Range。此外,您的Next b行會拋出錯誤,因為它位於巢狀If語句內。相反,您應該使用Exit For退出 For 循環,並將語句移到Next b外面If

For i = 8 To 17
    For b = 7 To 21
        If Sheets("Sheet1").Cells(i, 2).Value = Sheets("Sheet2").Cells(b, 1).Value Then
            Range(Sheets("Sheet2").Cells(b, 1), Sheets("Sheet2").Cells(b, 7)).Copy Sheets("Sheet1").Cells(i, 6)
            Exit For
        End If
    Next b
Next i

相關內容