Макрос (начинающий)

Wowan

Макрос в Excel должен делать следующее:
Копировать значение по очереди из ячейки колонки R файла 1. В файле 2 делать поиск (в колонке А находить требующееся значение и копировать из этой строки из колонки F значение и вставлять его в файл 3.
При записи макроса код VB отобразился вот так (в начале активен файл1):
ActiveCell.Select
Selection.Copy
Windows("файл 2.xls").Activate
Cells.Find(What:="292598", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
ActiveCell.Offset(0, 5).Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
Windows("файл 3.xls").Activate
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Range("A1").Select
Application.CutCopyMode = False
ActiveWorkbook.Save
Windows("файл 1.xls").Activate
ActiveCell.Offset(1, 0).Range("A1").Select
Проблема в том, что поиск в файле 2 делался обычным ctrl+F (по другому не умею) и при переходе к следующей ячейке в файле 1 и поиске в файле 2 искаться будет опять "292598" (то есть значение ячейки, при работе с которой был записан макрос). Научите пжлста как делать поиск с привязкой к ячейке (а не к конкретному значению а во-вторых, как сделать цикл по всей колонке файла 1.

Andbar

попробуй заменить искомую строку в запросе на ActiveCell.Text

Wowan

Спасибо, получилось. А не подскажете еще как написать:
искать B в файле
если B не найдено, то сделать то-то
То есть проблема в том, что, если строки B в файле нет, то программа выдает ошибку на строчке
Cells.Find(What:=B.........).Activate

Flack_bfsp

Ну ясен перец. Метод Файнд возвращает ноль, пустой объект, у него нельзя вызвать метод Активэйт.

Wowan

ну то, что так нельзя - это уже ясно. А что сделать, чтоб работало?

Flack_bfsp

Пользуйся переменными.

set c = Cells.Find(....)
If Not c Is Nothing Then
c.Activate
...
else
...
endif
Оставить комментарий
Имя или ник:
Комментарий: