powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / поиск пустой ячейки
12 сообщений из 12, страница 1 из 1
поиск пустой ячейки
    #34910321
konvoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ищется в колонке D значение Cont, если сразу не находится, то делаются операции 1, если находится, то проверяется заполнение ячейки "M". Если ячейка заполнена, то ищется дальше пока не найдется строка со значением Cont, где М пустая (над этой строкой выполняются операции 2) или дойдет до конца, тогда операции 3.
Выдается ошибка в строке *** на выражении (Range("M" & (Str(r))).Value = ""). Как правильно написать проверку в найденой строке, что ячейка "M" не заполнена?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
    With Worksheets( 1 ).Range("D1:D" & LTrim(Str(Num))) ' Диапазон поиска по столбцу D, где Num заведомо больше числа Row в таблице
        Set c = .Find(Cont, LookIn:=xlValues)
        If c Is Nothing Then   
		операции  1  .......... 
         Else

	   Do   ' -----------------------поиск непогашенной операции
                    Set c = .FindNext(c)
                    r = c.Row
***          Loop Until ((c Is Nothing) Or (Range("M" & (Str(r))).Value = ""))

               if c Is Nothing Then
		операции  2 
	   else
		операции  3 
	    end if
           End if
	...
    End With
Модератор: Не забываем про тег SRC
...
Рейтинг: 0 / 0
поиск пустой ячейки
    #34910428
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
        Loop Until ((c Is Nothing) Or (Range("M" & r).Value = ""))
...
Рейтинг: 0 / 0
поиск пустой ячейки
    #34910482
konvoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Непонятно почему, но заработало.
...
Рейтинг: 0 / 0
поиск пустой ячейки
    #34911930
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первую строку в которой значение в столбце D = Cont, в столбце M ="", можно найти обычной формулой массива,

Код: plaintext
1.
2.
3.
4.
5.
With Worksheets( 1 ).Range("D1:D" & LTrim(Str(Num)))
  r = Evaluate("MIN(IF(" & .Address(, , , True) & "=" & Cont & "," & _
                   "IF(" & .Offset(,  9 ).Address(, , , True) & "=""""," & _
                   "ROW(" & .Address(, , , True) & "))))")
End With
Debug.Print r

Если r = 0, то такой строки не найдено.
Иначе выдаст первый встретившийся номер строки
...
Рейтинг: 0 / 0
поиск пустой ячейки
    #34912091
konvoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на операторе r = ... выдается ошибка
...
Рейтинг: 0 / 0
поиск пустой ячейки
    #34912192
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konvoyна операторе r = ... выдается ошибка

полный рабочий код, незнаю что может вызывать ошибку, если хотите выложите файл

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub test()
Dim Num&, Count&, r&

Num =  50 
Cont =  3 

With Worksheets( 1 ).Range("D1:D" & LTrim(Str(Num)))
  r = Evaluate("MIN(IF(" & .Address(, , , True) & "=" & Cont & "," & _
                   "IF(" & .Offset(,  9 ).Address(, , , True) & "=""""," & _
                   "ROW(" & .Address(, , , True) & "))))")
End With
Debug.Print r

End Sub
...
Рейтинг: 0 / 0
поиск пустой ячейки
    #34913521
konvoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Предложенная вами команда у меня почему-то работает частично, значение 0 (не найдено) не возникает. Файл приложил. Никак не получается отработать правильно ПОИСК и обработку.
...
Рейтинг: 0 / 0
поиск пустой ячейки
    #34913528
konvoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему-то не прилепился файл
...
Рейтинг: 0 / 0
поиск пустой ячейки
    #34913921
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что сразу бросилось в глаза, это то что мой

Код: plaintext
.Offset(,  9 )
вы поменяли на
Код: plaintext
.Offset(,  12 )

верните назад, т.к. это смещение к столбцу M относительно столбца D
...
Рейтинг: 0 / 0
поиск пустой ячейки
    #34914414
konvoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я Вам премного благодарен. Все работает в лучшем виде. Я не понял назначение 9 и решил, что это цифровое обозначение столбца М, а о том, что это смещение узнал только от Вас.
...
Рейтинг: 0 / 0
поиск пустой ячейки
    #34914538
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konvoyЯ Вам премного благодарен. Все работает в лучшем виде. Я не понял назначение 9 и решил, что это цифровое обозначение столбца М, а о том, что это смещение узнал только от Вас.Если в примере макроса встретилась незнакомая команда (например как сейчас - Offset), то надо поставить курсор на эту команду и нажать F1. Потом читать до тех пор пока не станет ясно что эта команда делает.
...
Рейтинг: 0 / 0
поиск пустой ячейки
    #34914848
konvoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Я как раз хотел обратиться с этим вопросом, т.к. появилась потребность в поиске значения третьего поля.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / поиск пустой ячейки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]