2

2つの異なるシートの2つの列の値を比較したかったのですが、値が等しい場合、最初のシートの対応するセルは2番目のシートの対応するセルで同じ値になります。そこでループ関数を使ったのですが、1枚目のシートの関数で2枚目のシートを定義して使えないのが難点です。

この問題を解決するために私を導いていただければ幸いです。

使用したい機能の下にあります。

Sub Test_V01()
    Dim i As Integer
    Dim j As Integer

    Dim Bouira As Excel.Worksheet

    For j = 3 To 100
        For i = 3 To 120
            If Cells(j, 3) = Bouira!Cells(i, 30) Then 
                Cells(j, 12) = Bouira!Cells(i, 31)
            End If
        Next i                 
    Next j

End Sub
4

2 に答える 2

2
  1. Cells(j, 3)Cells(j, 12)をそれぞれMe.Cells(j, 3)とに置き換えMe.Cells(j, 12)て、アクティブなシートのセルではなく、このシートのセルが常に使用されるようにします。

  2. に置き換えBouira!CellsますBouira.Cells。要素が のリテラル値を持つコレクションがシートにありませんCells

  3. Bouiraループに入る前に参照を割り当てます。

    Set Bouira = ThisWorkbook.Worksheets("Sheet name")
    
于 2012-04-06T09:30:49.657 に答える