Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу здесь за 20 тыс руб в месяц! alarforum@yandex.ru


Ответ
 
Опции темы
Старый 13.12.2015, 18:37   #1
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 320
По умолчанию Проверка диапазона с объединенными ячейками по условию

Здравствуйте Уважаемые программисты!
Есть именованный диапазон "данные" (excel 2003), в котором есть объединенные ячейки. Подскажите пожалуйста, как проверить в этом диапазоне наличие пустых ячеек? Код ниже работает только с необъединенными ячейками. Спасибо!

Код:
For Each i In [данные]
   If i = "" Then
   MsgBox "есть пустые ячейки", vbInformation, "стоп": Exit Sub
   End If
Next
ольгаг вне форума Ответить с цитированием
Старый 13.12.2015, 18:57   #2
IgorGO
МегаМодератор
СуперМодератор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,343
По умолчанию

код выше работает с каждой ячейкой именованного диапазона
а что хотите Вы?
41001804815208 - Яндекс-деньги благодарности за удачные советы и решения можно отправлять прямо сюда)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 13.12.2015, 20:08   #3
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 320
По умолчанию

Если ячейка объединенная и в ней текст, то код все равно считает эту ячейку пустой. Т.е. надо чтобы код проверял если ячейка объединенная, то смотрел ее значение в крайней левой верхней ячейке, т.е. типа
Код:
MergeCells.Cells(0, 1)
и соответственно эту ячейку уже не считал пустой.
ольгаг вне форума Ответить с цитированием
Старый 13.12.2015, 20:23   #4
IgorGO
МегаМодератор
СуперМодератор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,343
По умолчанию

вот и проверте:
если ячейка обьединенная, то проверяется только первая
41001804815208 - Яндекс-деньги благодарности за удачные советы и решения можно отправлять прямо сюда)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 13.12.2015, 20:26   #5
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 320
По умолчанию

Спасибо!
Подскажите еще пожалуйста, как можно изменить мой код с помощью функции:

Код:
Function Reference_cell_even_if_merged(Cell_Range As Range) As Range
If Cell_Range.MergeCells Then
    Set Reference_cell_even_if_merged = Cell_Range.MergeArea
Else
    Set Reference_cell_even_if_merged = Cell_Range
End If
End Function
ольгаг вне форума Ответить с цитированием
Старый 13.12.2015, 20:46   #6
IgorGO
МегаМодератор
СуперМодератор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,343
По умолчанию

как с помощью предложенной функции изменить Ваш код - не знаю, потому что функция совершенно бесполезная.

а без функции так:
Код:
  Dim i As Range, check As Boolean
  For Each i In [данные]
    If i.MergeCells Then check = i.Address = i.MergeArea.Cells(1).Address Else check = True
    If check Then If IsEmpty(i) Then MsgBox "Empty": End
  Next
41001804815208 - Яндекс-деньги благодарности за удачные советы и решения можно отправлять прямо сюда)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 14.12.2015, 23:42   #7
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 320
По умолчанию

Спасибо большое!
ольгаг вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вставка столбца в таблицу с объединенными ячейками Jaroslav Microsoft Office Word 0 06.05.2014 16:30
Добавить строку в таблицу с объединенными ячейками Stilet Microsoft Office Word 3 03.08.2012 12:09
Проверка соприкосновений линии с ячейками массива Руслантус Помощь студентам 5 12.07.2012 07:31
Условное форматирование диапазона по условию alexsampler Microsoft Office Excel 19 12.09.2011 22:51
Работа с объединенными ячейками tae1980 Microsoft Office Excel 6 13.02.2009 22:25


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840