Другие языки программирования и технологии

Excel. Макрос. Найти в Листе1 значение активной ячейки из Листа2.

Нужен простой макрос. Обычно необходимые мне макросы создаю сам с помощью опции "Запись Макроса". Но тут не пойму как его записать.
А макрос нужен элементарный. На Листе1 нужно найти значение активной ячейки из Листа2, остановиться на найденной ячейке, продвинуться на 8 ячеек вправо и стоп. Все действия возможно проделать и записать, кроме "на Листе1 найти значение активной ячейки из Листа2".
Кто-нибудь может подсказать эту часть?
Адрес активной ячейки определяется параметрами
ActiveCell.Row - строка и ActiveCell.Column - столбец.
И нам нужно на листе "Лист1" (допустим, на поле 1000х100 ячеек) найти значение той ячейки.
Значит, надо сделать что-то типа такого:
Dim i As Long, k As Long, ACR As Long, ACC As Long
Dim Flag As Boolean, Msg As String
Workbook("Лист2").Activate
With Workbook("Лист2")
ACR = .ActiveCell.Row : ACC = .ActiveCell.Column ' обратите внимание на точки!
End With
Workbook("Лист1").Activate
Flag = False
For i = 1 To 1000
For k = 1 To 100
If Workbook("Лист1").Cells(i, k) = Workbook("Лист2").Cells(ACR, ACC) Then
' Нашли на Листе1 ячейку, в которой записано то же самое, что в активной ячейке на Листе2
Workbook("Лист1").Cells(i, k+8).Select ' Ставим курсор на ячейку на 8 правее найденной
Msg = "Строка " & ACR & "; Колонка " & ACC ' Сообщаем миру о нашей находке
MsgBox (Msg) ' Выводим это сообщение на экран (если нужно)
Flag = True ' Устанавливаем признак, что ячейка найдена
End If
If Flag Then Exit For ' Выскакиваем из цикла, так как ячейка найдена и искать дальше не нужно
Next k
If Flag Then Exit For ' Выскакиваем из этого цикла тоже
Next i
End Sub

Можно, конечно, поискать и на ВСЁМ Листе1, но это будет ОЧЕНЬ долго.
i = 1048576 строк и k = 16384 колонки.
АК
Александр Косенкин
50 638
Лучший ответ
Владислав Маркишов Спасибо за ответ. Но, к сожалению, это для меня непонятно.
"Найти в Листе1 значение активной ячейки из Листа2" - можете написать здесь только этот макрос?
Евгений Симонов что означает переменная Flag ?