2016-06-16 6 views
1
y = Application.WorksheetFunction.Match(51187, Sheets("New Master Data 6.1").Range(Cells(1, 1), Cells((Rows.Count), 1)), 0) 

私の構文には何が間違っていますか?助けてください:)一致方法のVBA構文

+0

[別のシートの行数をカウント](http://stackoverflow.com/questions/27763089/count-the-number-of-rows-in-another-sheet/27763394#27763394)の複製を閉じます。 – Jeeped

答えて

2

"New Master Data 6.1"がアクティブなシートでない場合、正規のコードモジュールでは、適格なワークシートのないCells()のインスタンスはアクティブなシートを参照するため、コードはエラーになります。 WorksheetFunctionをドロップすると、あなたの代わりに一致がない時に実行時エラーを誘発する、戻り値をテストすることができますことを

With Sheets("New Master Data 6.1") 
    y = Application.Match(51187, .Columns(1), 0) 
End with 

If Not IsError(y) Then 
    'do something with y 
Else 
    'value was not found 
End If 

注:

私のようなものを使用します。

+0

@ジープ - 申し訳ありません:それが起こると、私はそれが嫌い... –

+0

yはロングにはなりません。エラーをキャッチするにはバリアントでなければなりません – Jeeped