y = Application.WorksheetFunction.Match(51187, Sheets("New Master Data 6.1").Range(Cells(1, 1), Cells((Rows.Count), 1)), 0)
私の構文には何が間違っていますか?助けてください:)一致方法のVBA構文
y = Application.WorksheetFunction.Match(51187, Sheets("New Master Data 6.1").Range(Cells(1, 1), Cells((Rows.Count), 1)), 0)
私の構文には何が間違っていますか?助けてください:)一致方法のVBA構文
"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
注:
私のようなものを使用します。
@ジープ - 申し訳ありません:それが起こると、私はそれが嫌い... –
yはロングにはなりません。エラーをキャッチするにはバリアントでなければなりません – Jeeped
[別のシートの行数をカウント](http://stackoverflow.com/questions/27763089/count-the-number-of-rows-in-another-sheet/27763394#27763394)の複製を閉じます。 – Jeeped