|
▼まろにー さん:
こんにちは
私個人としては、対象のセルを「ActiveCell」と指定するのは好きじゃないんですが。
その前提である、「そのセルのあるブックが最前面、いわゆるアクティブブックで、かつ」
そのセルがあるシートが最前面(いわゆるアクティブシート)という前提のコードもあぶなっかしくて
好きじゃないんですけど、そこはそのまま使うとして。
Range("A1:A20") は、たとえばの、サンプルです。
Sub Sample()
Dim sh2 As Worksheet
Set sh2 = workbokks("Book2.xls").Sheets("Sheet1") 'シート名は実際のものに
ActiveCell.Value = _
Application.WorksheetFunction.Match(Cells(2, 2), sh2.Range("A1:A20"), 0)
End Sub
メモ
Application.WorksheetFunction.Match
WorksheetFunctionを使うなら、これは、長ったらしいので
WorksheetFunction.Match と記述したほうがすっきりします。
もう1つ、
照合型 0 のWorksheetFunction.Match だと、見つからなかった場合、実行時エラーでVBA処理が中断します。
これを避けるためには
Application.Match と、Applicationクラスの関数を使います。
(見つからなかった場合、エラー値がかえってきます)
|
|