|
こんにちは。
例えば、
検索するブックを1度開いていいのなら
検索キー = "AAA10"
ブック名 = "データ1.xls"
結果 = Application.Match(検索キー, Workbooks(ブック名).Sheets("Sheet1").Columns(1), 0)
If IsError(結果) Then
MsgBox "無い"
Else
MsgBox 結果 & "行目に有"
End If
開きたくないんだったら、適当なセルに関数を入れて判定した方が簡単かつ速いと思います。
検索キー = "AAA10"
ブック名 = "データ1.xls"
pas = "'" & CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\"
KKL = "=MATCH(""" & 検索キー & """," & pas & "[" & ブック名 & "]" & "Sheet1'!$A:$A,0)"
Cells(1, 5).Formula = KKL
If IsError(Cells(1, 5).Value) Then
MsgBox "無い"
Else
MsgBox Cells(1, 5).Value & "行目に有"
End If
Cells(1, 5).ClearContents
他ブックをオートフィルタし、結果を自ブックにコピペの場合。
(フィルタ結果の有無は判定してません。)
With Workbooks("データ1.xls").Sheets("Sheet1")
.Range("A1").AutoFilter Field:=1, Criteria1:="AAA10"
.Range("A2", .Range("A63336").End(xlUp)).SpecialCells(xlCellTypeVisible).Copy
.AutoFilterMode = False
End With
ThisWorkbook.Sheets(2).Range("A1").PasteSpecial
こんな感じの物をループで1ブックづつ探していくしかないと思います。
(つまり遅い)
アクセスなら1っぱつポンで済むかもしれませんが...。
|
|