0

異なる値のセルを比較する際に問題がありますが、比較される値が同じであれば機能します。私が直面している問題は、ワークシート 1 のセル A1:A100 とワークシート 2 のセル B3:B1000 を比較することです。ワークシート 1 とワークシート 2 の値が等しい場合、ワークシート 3 のセル A に貼り付けられます。値が等しくない場合、worksheet3 のセル B に貼り付けられます。これが私が直面している問題です。これが私のコードです。

Private Sub CommandButton1_Click()

Dim val1、val2 As String

i = 1 ~ 100 の場合

val1 = Worksheets("Sheet1").Cells(i, 1)

 For j = 3 To 1000
 val2 = Worksheets("Sheet2").Cells(j, 2)

  If (val1 = val2) Then
   Worksheets("Sheet3").Cells(i, 1) = val2

  ElseIf (val1 <> val2) Then
   Worksheets("Sheet3").Cells(i, 2) = val2

  End If

  Next

サブ終了

4

1 に答える 1

0

実際には.....「シート 2 の列 B のすべての値に対して、これがA1:A100の範囲内にある場合」という意味です...

最後にあなたを手に入れました。これが役立つかどうかを確認してください。

Sub test()
    Dim val As Variant
    Dim found As Integer, notFound As Integer

    found = 0
    notFound = 0

    For j = 3 To 1000
        val = Worksheets("Sheet2").Cells(j, 2).Value
        If Not IsError(Application.Match(val, Worksheets("Sheet1").Range("A1:A100"), 0)) Then
            'Comment this line if you don't want to paste the values that are the same
            'Worksheets("Sheet3").Range("A1").Offset(found) = val
            found = found + 1
        Else
            Worksheets("Sheet3").Range("B1").Offset(notFound) = val
            notFound = notFound + 1
        End If
    Next
End Sub
于 2013-10-03T03:33:11.217 に答える