0

以下で困っています。match 関数を使用して、値が列 B に存在するかどうかを (列 A の空白ではない値ごとに) チェックし、存在する場合は同じセルの宛先のシート 2 に値を投稿します。「オブジェクトはこのプロパティまたはメソッドをサポートしていません」という「一致」のある行に到達すると、エラーが発生します。私が選択したコーディング方法が、実行したい機能を混乱させる場合に備えて=match(cl.address; B; 0). 私のコードは

Sub UseFunction()
    Dim myRange As Range

    For Each cl In Worksheets("sheet1").Range("A:A")
        If cl.Value <> "" Then
            If cl.WorksheetFunction.Match(cl.Address, B, 0) Then
                Worksheets("sheet2").cl.Value = Worksheets("sheet1").cl.Value
            End If
        End If
    Next cl
End Sub
4

2 に答える 2

2

=match(cl.address; B; 0)は有効な数式ではありません。「B列」と言えば ですB:B

cl.WorksheetFunction.Matchする必要がありますApplication.WorksheetFunction.Match

必要な 2 番目のパラメーターについては、Worksheets("sheet1").Columns(2)またはWorksheets("sheet1").Range("B:B").

Match(cl.address, ...)clの値ではなく、文字列として格納されている列 Bの のアドレスを検索しようとしますcl。値を見つけたい場合は、Match(cl.value, ...)

于 2013-05-09T08:48:37.063 に答える