|
▼mo さん:
こんにちは
要件を誤解しているところもあるかもしれませんが・・・
Book1とBook2はともに、既に開かれていることを前提にしたコード。
ブック名拡張子は2003ベースのxlsにしていますが、ここは直してください。
また、それぞれのシート名も適切なものにしてください。
★Book2の検索領域がどこなのか不明でしたので使用領域を全て検索していますが
もしかしたら、ここもA列だけでよかったかな?)
Sub Sample()
Dim sh As Worksheet
Dim myC As Range, myF As Range, myCol As Range
Dim n As Long
Application.ScreenUpdating = False
Set sh = Workbooks("Book2.xls").Sheets("Sheet1")
With Workbooks("Book1.xls").Sheets("Sheet1")
For Each myC In .Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Row)
n = Val(myC.Value) - 500000
For Each myCol In sh.UsedRange.Columns
Set myF = myCol.Find(What:=n, After:=myCol.Cells(myCol.Cells.Count), _
LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False, MatchByte:=False, _
SearchFormat:=False)
If Not myF Is Nothing Then
myC.Offset(, 8).Value = myF.Offset(, 6).Value
End If
Next
Next
End With
Set sh = Nothing
End Sub
|
|