powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проверка условия присутствия данных
12 сообщений из 12, страница 1 из 1
Проверка условия присутствия данных
    #37043421
Фотография Stepler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то не пойму - на втором круге выдает ошибку
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
i = ActiveCell.Row
f =  1 
l: p = Cells(i,  4 )
   pp = Cells(i,  4 ).Address
   Cells(i,  4 ).Select
    Selection.AutoFilter Field:=Cells(i,  4 ).Column -  1 , Criteria1:=p
    Columns("B:B").Select
    On Error GoTo l1
     Selection.Find(What:="да").Activate
    i = i +  1 
GoTo l
l1:  i = i +  1 
e = Columns("B:B").Count
   If e <=  1  Then GoTo l
End Sub
ошибка идет на строке
Код: plaintext
Selection.Find(What:="да").Activate
как буд-то должно быть с "Set" , но я раньше делал без Set и ведь работало....
Что не так??

Stepler (щёлк-щёлк!!)

Код: plaintext
 P.S.Чтобы наступила смерть - необходима жизненная сила !!!  
...
Рейтинг: 0 / 0
Проверка условия присутствия данных
    #37043437
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все оч просто
если .Find не нашел указанного паттерна, он возвращает Nothing
а нельзя активировать то, чего нет!
...
Рейтинг: 0 / 0
Проверка условия присутствия данных
    #37043441
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще нюанс.
Возврат из процедуры обработки ошибки, обязательно должен заканчиваться Resume. Хорошо бы вообще переписать этот цикл без использования On Error
...
Рейтинг: 0 / 0
Проверка условия присутствия данных
    #37043443
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Selection тоже не надо использовать

конструкции вида:
Код: plaintext
1.
Columns("B:B").Select
Selection.Find(What:="да").Activate

можно записывать так:
Код: plaintext
Columns("B:B").Find(What:="да").Activate

ЗЫ:
Сразу не заметил:
авторна втором круге выдает ошибку
дело именно в неправильной обработке On Error
...
Рейтинг: 0 / 0
Проверка условия присутствия данных
    #37043446
Фотография Stepler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Код: plaintext
1.
2.
On Error GoTo служит критерием, не хочется двойной проверки типа:
 if Columns("B:B").Find(What:="да").Activate then.....
 if Columns("B:B").Find(What:=" ").Activate then.....
Но все равно, спасибо
...
Рейтинг: 0 / 0
Проверка условия присутствия данных
    #37043462
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SteplerOn Error GoTo служит критерием
критерием должен служить Nothing
Код: plaintext
1.
2.
3.
4.
5.
6.
Dim s As Range
Set s = Columns("B:B").Find(What:="да")
If s Is Nothing Then
  MsgBox "Не найдено"
Else
  s.Activate
End If
Правда, для чего там Activate - тоже не ясно
...
Рейтинг: 0 / 0
Проверка условия присутствия данных
    #37043470
Фотография Stepler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Аctivate для действий в ячейках....
...
Рейтинг: 0 / 0
Проверка условия присутствия данных
    #37043471
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SteplerАctivate для действий в ячейках....
Что за действия, которые нельзя сделать минуя Activate?
...
Рейтинг: 0 / 0
Проверка условия присутствия данных
    #37043498
Фотография Stepler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

"да", это как пример.
Коды макроса гораздо сложнее, я выложил часть в качестве примера.
Активация нужна для последующей адресации и значения.
Исчо раз спасибо за советы - уже проблемму решил.
...
Рейтинг: 0 / 0
Проверка условия присутствия данных
    #37043520
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SteplerАктивация нужна для последующей адресации и значения.
Активация, а также работа с Select и Selection нужна только для того, чтобы выделить какую-то ячейку или область для пользователя то есть это условно последняя инфтрукция в программе. Для работы самой программы это все не нужно и даже вредно.
...
Рейтинг: 0 / 0
Проверка условия присутствия данных
    #37043571
Фотография Stepler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Да, но мне нада в процессе работы макроса дописовать данные в активные ячейки...
Исчо раз спасибо
...
Рейтинг: 0 / 0
Проверка условия присутствия данных
    #37043582
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SteplerДа, но мне нада в процессе работы макроса дописовать данные в активные ячейки...
Исчо раз спасибо
Не плодите сущностей, брейтесь Оккамом.
Вы уверены, что вам надо дописывать данные в АКТИВНЫЕ ячейки? Может быть ПРОСТО в ячейки?
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проверка условия присутствия данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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