このマクロを答えとして提供できます。次の改善の余地があります。
- ちらつきアプリケーションを無効にします。
- LastName と FirstName をarrayとして、データを追加し、多くのウィンドウの変更を避ける
- 以前開いていたのではなく、openとcloseを使用して直接 Excel を開きます。
これがコードです
Option Explicit
Sub Macro1()
'
' Macro1 Macro
'
Dim City As String
Dim FirstName As String
Dim LastName As String
City = Range("B4").Value 'B4 cell where city is
Range("C4").Select 'C4 cell where name is pasted
'go to the book, shhet and firs range with names
Windows("book_with_cities.xlsx").Activate
Sheets("year2011").Select
Range("A4").Select 'where the data start
'main copy loop
Do While ActiveCell.Value <> ""
'if is the city I´m lookin for copy the data to my excel of results
If ActiveCell.Value = City Then
LastName = ActiveCell.Offset(0, 1).Value
FirstName = ActiveCell.Offset(0, 2).Value
Windows("book_with_results.xlsx").Activate
Sheets("Your_city_data").Select
ActiveCell.Value = LastName
ActiveCell.Offset(0, 1).Value = FirstName
ActiveCell.Offset(1, 0).Select
Windows("book_with_cities.xlsx").Activate
Sheets("year2011").Select
End If
ActiveCell.Offset(1, 0).Select
Loop
'going back to your sheet
Windows("book_with_results.xlsx").Activate
Sheets("Your_city_data").Select
End Sub
お役に立てれば
よろしくお願いします
アレン