Страницы: 1
RSS
Два идентичных кода в разных столбцах работают по-разному, Помогите разобраться, почему!
 
Доброго дня, знатоки Экселя! Снова мне нужна ваша помощь...

Нашла на просторах Тырнета простой, как валенок, код для отображения в текущей ячейке нескольких значений из списка.
Но почему-то в одном столбце код работает как надо (добавляет значения к имеющемуся содержанию ячейки), а во втором не работает вовсе (значение полностью заменяется новым).
Почему так происходит? Может ли это быть связано с тем, что в первом случае значения маленькие (три буквы максимум), а во втором - довольно длинные фразы? Или в чём-то другом дело?

В файле примера в ячейке F4 показала, что хочу увидеть (несколько значений, разделённых "разрывом строки").

На выделенные жёлтым ячейки внимания не обращайте - это для следующей темы. Если таки не отыщу...

Заранее СПАСИБО!)
 
Нельзя размещать в модуле листа два макроса, реагирующих на одно событие. А события Change2 вообще не существует )
Код
    If Not Intersect(Target, Range("D4:D200, F4:F200")) Is Nothing Then
       If Target.Cells.Count > 1 Then Exit Sub
 
Потому что у Вас указан только один контролируемый диапазон:
Код
If Not Intersect(Target, Range("D4:D200"))
 
О, а так можно, да? Я думала, для каждого отдельно)) Спасибочки!  :*  Обоим!)

PS: По аналогии адаптировала таки найденный код. Так что второй темы не будет, у меня всё заработало!  :D
Изменено: macovea - 23.10.2018 15:46:03
 
Ребята, ап темы. Возникла проблема. Почему-то добавляются значения не только к контролируемому диапазону, а по всему листу... Где косяк?

Например, в выделенных жёлтым ячейках такого быть не должно. Макрос должен срабатывать ТОЛЬКО в диапазонах D4:D200 и F4:F200. Диапазон прописан. Где ошибка - непонятно.

Поправила файл.
Изменено: macovea - 24.10.2018 15:04:34
 
Где данные добавляются ошибочно?

Для чего файл с 4 листами? Зачем два макроса в  модуле листа? Люди время теряют на то, чтобы найти то, о чем спрашиваете!
Тратьте свое время на подготовку небольшого файла-примера и нормальное описания ошибки
 
Попробовала удалить второй диапазон - работает нормально. Причина в двух несвязанных диапазонах?
Так - работает.
Код
    If Not Intersect(Target, Range("D4:D200")) Is Nothing Then

Как только добавляется второй диапазон - начинает добавлять второе (третье, последующее) вводимое значение ко всем ячейкам на листе, а не только в указанных диапазонах.
Код
    If Not Intersect(Target, Range("D4:D200;F4:F200")) Is Nothing Then
Изменено: macovea - 24.10.2018 15:24:10
 
"D4:D200, F4:F200"
 
Цитата
macovea написал:
If Not Intersect(Target, Range("D4:D200;F4:F200")) Is Nothing Then
записано с ошибкой, а строка
On Error Resume Next,
при возникновении ошибки приводит к игнору условия, и выполнению макроса в любом месте листа.
 
Погодите, но я же с сообщения копировала код! Там была точка с запятой... Видимо, у меня глюки...

Но с запятой - всё работает, да) Благодарствую!

Цитата
RAN написал:
записано с ошибкой, а строка On Error Resume Next, при возникновении ошибки приводит к игнору условия, и выполнению макроса в любом месте листа.
О, спасибо за важное уточнение! Буду знать.

Всё, теперь точно тему можно закрыть  :)
Изменено: macovea - 24.10.2018 16:18:38
Страницы: 1
Наверх