Без обид, но зачем строить циклы не разобравшись с остальным бредом ?
1) Вы ищите во всех ячейках - данные ячеек самой первой строки, при этом, сам поиск осуществляется по столбцам, и в результате находите активную ячейку, проще говоря ActiveCell и ColValue это и одна и та же ячейка. Нафига нужен такой поиск ... вот если бы Вы планировали искать данные первой строки в первом столбце ... а так.
2) Зачем нужна замена 111 в ячейках, где наличествует формула, возвращающая либо "ОК" либо ""
pashulka писал(а):
1) ActiveCell и ColValue это и одна и та же ячейка.
ОК. Исправил... в меру своих познаний
pashulka писал(а):
2) Зачем нужна замена 111 в ячейках, где наличествует формула, возвращающая либо "ОК" либо ""
Формула просто как пример, которая показывает что в выделенном диапазоне будет происходить поиск и замена значения, обозначенного в первой строке столбца.
pashulka писал(а):Preol, Может быть Вы просто скажите что должен делать макрос применительно к выложенному примеру, а опубликованный код, останется, не при делах.
Макрос должен изменить значение в формуле (в примере 111) для каждого столбца, на значение находящееся в 1 ячейке столбца. Диапазон по строкам и столбцам - динамический.
На самом деле, в формуле (реальной, а не в примере) будет заменяться название файла откуда с помощью ВПР будут получены данные...
Если Вы уверены, что обрабатывать нужно именно до первой непустой ячейки в столбце и строке, т.е. в первом столбце, и в первой строке данные обязательно заполняются последовательно, то :
Private Sub Test()
Dim iMaxRow&, iMaxColumn%, iColumn%
iMaxRow = [A2].End(xlDown).Row - 1
iMaxColumn = [B1].End(xlToRight).Column
Application.ScreenUpdating = False
For iColumn = 2 To iMaxColumn
Cells(2, iColumn).Resize(iMaxRow).Replace "111", Cells(1, iColumn)
Next
Application.ScreenUpdating = True
End Sub