2017-02-25 6 views
0

.Match機能に問題があります。引用符と文字で範囲を設定すると( "A:A")、うまくいく。しかし、変数を設定しようとすると、1004エラーが発生します。VBAと一致する可変範囲

これは動作します:

a = WorksheetFunction.Match(Range("A1"), Sheets("Data").Range("A:A"), 0) 

これは動作しません:私は.Match関数内で変数を使用して範囲を設定するにはどうすればよい

a = WorksheetFunction.Match(Range("A2"), Sheets("Data").Range(Cells(a, 4), Cells(a + 5, 4)), 0) 

を?

答えて

2

あなたがそうでなければ、彼らはここであなたはそれが簡単にリサイズを(使用することを見つけるかもしれない

a = WorksheetFunction.Match(Range("A2"), Sheets("Data").Range(Sheets("Data").Cells(a, 4), Sheets("Data").Cells(a + 5, 4)), 0) 
+0

しかし、私は可変範囲を持っているので、セルプロパティを設定する別の方法を見つけることは可能でしょうか? –

+2

投稿された質問とは別の問題ですか?もしそうなら、新しい投稿をしてください。その間、あなたはあなたの_original_質問を解決した場合、回答を受け入れることができます。ありがとうございます – user3598756

+0

@GasiakA。 - 変数範囲がある場合は、変数aの値を変更する(またはハードコードされた '5'と' 4'を変更する必要があるビットの場合は変数に変更する) – YowE3K

1

シート)に、現在「アクティブ」デフォルトでは、range参照(worksheetオブジェクトまで)完全修飾を使用する必要があります。

a = WorksheetFunction.Match(Range("A2"), _ 
          Sheets("Data").Cells(a, 4).Resize(6, 1), 0)