Новости:

Прикрепить к сообщению можно только файлы xls, gif, jpg, rar, zip,7z, bas, frm, cls, doc размером до 150 Кб.

Главное меню

Макросом найти значение в столбце

Автор lovko, 11.01.2016, 19:50

« назад - далее »

lovko

Здравствуйте!
На Листе 1 в диапазоне L9:L37 - цифры. В конце диапазона в нескольких ячейках подряд - только нули. Помогите, пожалуйста, макросом найти первый ноль в этом диапазоне (поиск сверху вниз). При этом макрос должен выводить адрес этой ячейки (номер строки, в которой она находится) в ячейке А1 Листа 2 Другого_файла. И еще одно уточнение, если вдруг оно важно: макрос будет помещен в личную книгу макросов.
Большое спасибо!

doober

Здравствуйте.
На выбор строка или адрес.Не нужное удалите.
Применение.Формула в ячейке =FindZero(Лист1!L9:L14)
Public Function FindZero(r As Range) As String
    For n = 1 To r.Rows.Count
        If r.Cells(n, 1) = "" Or r.Cells(n, 1) = 0 Then
            FindZero = Replace(r.Cells(n, 1).Address, "$", "") 'Адрес
            FindZero = r.Cells(n, 1).Row ' Строка
            Exit Function
        End If
    Next
    FindZero = ""
End Function

lovko

Спасибо! Нашел еще такой вариант:

p = Workbooks("Книга.xlsm").Worksheets("Лист1").Range("L9:L37").Find("0").Row
Workbooks("Книга.xls").Sheets("Лист2").Range("A1") = p

lovko

Вместо 11 строки указывает на 10. Подскажите, пожалуйста, почему так?

cheshiki1

по тому что в 303 тоже есть ноль.
выход: добавить параметр поиска "ячейка целиком".
Find(0, , , xlWhole)
п.с. параметры поиска желательно прописывать в коде, связано это стем что если вы до выполнения кода делали какой нибудь поиск то настройки сохранятся и код сделает поиск с предыдущими настройками т.к. у коде настройки не указаны.

lovko


d7d1cd

Цитата: lovko от 04.02.2016, 15:17
Откуда вы всё знаете?!
"Годы упорных тренировок" (с) И. Будько.