Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Выделение строки с пустой ячейкой - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выделение строки с пустой ячейкой (Макросы/Sub)
Выделение строки с пустой ячейкой
AVI Дата: Понедельник, 03.06.2019, 04:58 | Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 506
Репутация: 7 ±
Замечаний: 0% ±

Excel 2016
Добрый день!
Подскажите, пожалуйста процедуру, которая бы выделяла строку в диапазоне B3:G15 если хотя бы одна ячейка в этой строке пустая
К сообщению приложен файл: 4388048.xlsx(7.5 Kb)
 
Ответить
СообщениеДобрый день!
Подскажите, пожалуйста процедуру, которая бы выделяла строку в диапазоне B3:G15 если хотя бы одна ячейка в этой строке пустая

Автор - AVI
Дата добавления - 03.06.2019 в 04:58
Pelena Дата: Понедельник, 03.06.2019, 08:58 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 14440
Репутация: 3163 ±
Замечаний: ±

Excel 2010, 2016 & Mac Excel
Здравствуйте.
Условным форматированием не пойдёт?
К сообщению приложен файл: 5186803.xlsx(8.5 Kb)


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеЗдравствуйте.
Условным форматированием не пойдёт?

Автор - Pelena
Дата добавления - 03.06.2019 в 08:58
AVI Дата: Понедельник, 03.06.2019, 10:03 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 506
Репутация: 7 ±
Замечаний: 0% ±

Excel 2016
Pelena, Нет я пробовал, большая таблица - подтормаживает, да и из-за постоянного копипаста и удаления строк начинают глючить формулы в УФ
 
Ответить
СообщениеPelena, Нет я пробовал, большая таблица - подтормаживает, да и из-за постоянного копипаста и удаления строк начинают глючить формулы в УФ

Автор - AVI
Дата добавления - 03.06.2019 в 10:03
_Boroda_ Дата: Понедельник, 03.06.2019, 10:30 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 15576
Репутация: 6077 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
4388048.xlsx(7.5 Kb)

Какой красивый пустой файл! :D
Что значит "выделяла"? Именно выделить Селектом или как-то пометить, например, закрасить?
Такой вариант с закрасить
[vba]
Код
Sub tt()
    Set d_ = Range("B3:G15")
    r0_ = d_.Row
    ar = d_
    For i = 1 To UBound(ar)
        For j = 1 To UBound(ar, 2)
            If ar(i, j) = "" Then
                t_ = t_ & ", " & "B" & r0_ + i - 1 & ":G" & r0_ + i - 1
                Exit For
            End If
        Next j
    Next i
    d_.Interior.ColorIndex = 0
    If t_ <> "" Then
        t_ = Mid(t_, 3)
        Range(t_).Interior.Color = 255
    End If
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
4388048.xlsx(7.5 Kb)

Какой красивый пустой файл! :D
Что значит "выделяла"? Именно выделить Селектом или как-то пометить, например, закрасить?
Такой вариант с закрасить
[vba]
Код
Sub tt()
    Set d_ = Range("B3:G15")
    r0_ = d_.Row
    ar = d_
    For i = 1 To UBound(ar)
        For j = 1 To UBound(ar, 2)
            If ar(i, j) = "" Then
                t_ = t_ & ", " & "B" & r0_ + i - 1 & ":G" & r0_ + i - 1
                Exit For
            End If
        Next j
    Next i
    d_.Interior.ColorIndex = 0
    If t_ <> "" Then
        t_ = Mid(t_, 3)
        Range(t_).Interior.Color = 255
    End If
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 03.06.2019 в 10:30
AVI Дата: Понедельник, 03.06.2019, 10:37 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 506
Репутация: 7 ±
Замечаний: 0% ±

Excel 2016
_Boroda_, Блин, отправил файл, а потом сохранил))
Именно закрасить и решение в точку! Спасибо)
 
Ответить
Сообщение_Boroda_, Блин, отправил файл, а потом сохранил))
Именно закрасить и решение в точку! Спасибо)

Автор - AVI
Дата добавления - 03.06.2019 в 10:37
AVI Дата: Понедельник, 03.06.2019, 10:55 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 506
Репутация: 7 ±
Замечаний: 0% ±

Excel 2016
_Boroda_, что-то на много строк не работает... Их больше 3000
Приложил пример.
К сообщению приложен файл: 1146918.xlsm(29.4 Kb)


Сообщение отредактировал AVI - Понедельник, 03.06.2019, 10:57
 
Ответить
Сообщение_Boroda_, что-то на много строк не работает... Их больше 3000
Приложил пример.

Автор - AVI
Дата добавления - 03.06.2019 в 10:55
_Boroda_ Дата: Понедельник, 03.06.2019, 11:22 | Сообщение № 7
Группа: Модераторы
Ранг: Местный житель
Сообщений: 15576
Репутация: 6077 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
что-то на много строк не работает

Что-то я в первоначальном условии ничего про "много строк" не вижу
[vba]
Код
Sub ee()
    Application.ScreenUpdating = 0
    Set d0_ = Range("B3:G" & Cells(Rows.Count, 2).End(3).Row)
    d0_.Interior.ColorIndex = 0
    Set d_ = d0_.SpecialCells(xlCellTypeBlanks)
    If Not d_ Is Nothing Then
        Set slov = CreateObject("Scripting.Dictionary")
        With slov
            For Each d1_ In d_
                r_ = d1_.Row
                If Not .Exists(r_) Then
                    aaa = .Item(r_)
                    Range("B" & r_).Resize(, 6).Interior.Color = 255
                End If
            Next d1_
        End With
    End If
    Application.ScreenUpdating = 1
End Sub
[/vba]
К сообщению приложен файл: 1146918_1.xlsm(32.4 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
что-то на много строк не работает

Что-то я в первоначальном условии ничего про "много строк" не вижу
[vba]
Код
Sub ee()
    Application.ScreenUpdating = 0
    Set d0_ = Range("B3:G" & Cells(Rows.Count, 2).End(3).Row)
    d0_.Interior.ColorIndex = 0
    Set d_ = d0_.SpecialCells(xlCellTypeBlanks)
    If Not d_ Is Nothing Then
        Set slov = CreateObject("Scripting.Dictionary")
        With slov
            For Each d1_ In d_
                r_ = d1_.Row
                If Not .Exists(r_) Then
                    aaa = .Item(r_)
                    Range("B" & r_).Resize(, 6).Interior.Color = 255
                End If
            Next d1_
        End With
    End If
    Application.ScreenUpdating = 1
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 03.06.2019 в 11:22
skais Дата: Понедельник, 03.06.2019, 11:29 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 186
Репутация: 25 ±
Замечаний: 60% ±

Excel 2010
Boroda_
Set d0_ = Range("B3:G" & Cells(Rows.Count, 2).End(3).Row)

Определение диапазона - что будет если последние строки в ячейке B будут пустыми?


Сообщение отредактировал skais - Понедельник, 03.06.2019, 11:44
 
Ответить
СообщениеBoroda_
Set d0_ = Range("B3:G" & Cells(Rows.Count, 2).End(3).Row)

Определение диапазона - что будет если последние строки в ячейке B будут пустыми?

Автор - skais
Дата добавления - 03.06.2019 в 11:29
_Boroda_ Дата: Понедельник, 03.06.2019, 11:51 | Сообщение № 9
Группа: Модераторы
Ранг: Местный житель
Сообщений: 15576
Репутация: 6077 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
что будет если последние строки в ячейке B будут пустыми

А что будет, если в приложенном в сообщении 6 файле посмотреть измененный автором макрос? Или вообще просто посмотреть на файл и представить методику его заполнения? :D


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
что будет если последние строки в ячейке B будут пустыми

А что будет, если в приложенном в сообщении 6 файле посмотреть измененный автором макрос? Или вообще просто посмотреть на файл и представить методику его заполнения? :D

Автор - _Boroda_
Дата добавления - 03.06.2019 в 11:51
skais Дата: Понедельник, 03.06.2019, 11:57 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 186
Репутация: 25 ±
Замечаний: 60% ±

Excel 2010
_Boroda_ Вы ж понимаете - это мелочь, но из постановки задачи чуток не то, хотя по данным такое наверно невозможно, но кто знает?! Потому подвох останется.
 
Ответить
Сообщение_Boroda_ Вы ж понимаете - это мелочь, но из постановки задачи чуток не то, хотя по данным такое наверно невозможно, но кто знает?! Потому подвох останется.

Автор - skais
Дата добавления - 03.06.2019 в 11:57
_Boroda_ Дата: Понедельник, 03.06.2019, 12:08 | Сообщение № 11
Группа: Модераторы
Ранг: Местный житель
Сообщений: 15576
Репутация: 6077 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
[offtop]
но из постановки задачи чуток не то

В постановке задачи вообще много чего не то. Для того спинной мозг и существует, чтобы чуять им что автору на самом деле нужно :D [/offtop]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение[offtop]
но из постановки задачи чуток не то

В постановке задачи вообще много чего не то. Для того спинной мозг и существует, чтобы чуять им что автору на самом деле нужно :D [/offtop]

Автор - _Boroda_
Дата добавления - 03.06.2019 в 12:08
AVI Дата: Понедельник, 03.06.2019, 14:16 | Сообщение № 12
Группа: Проверенные
Ранг: Ветеран
Сообщений: 506
Репутация: 7 ±
Замечаний: 0% ±

Excel 2016
_Boroda_, Спасибо, все работает.
Отдельно спасибо за это [vba]
Код
Range("B3:G" & Cells(Rows.Count, 2).End(3).Row)
[/vba] Сам я никак не мог допереть как так кратенько очертить диапазон

skais, В этом столбце всегда заполнены все строки, какие нужны
 
Ответить
Сообщение_Boroda_, Спасибо, все работает.
Отдельно спасибо за это [vba]
Код
Range("B3:G" & Cells(Rows.Count, 2).End(3).Row)
[/vba] Сам я никак не мог допереть как так кратенько очертить диапазон

skais, В этом столбце всегда заполнены все строки, какие нужны

Автор - AVI
Дата добавления - 03.06.2019 в 14:16
bmv98rus Дата: Понедельник, 03.06.2019, 14:20 | Сообщение № 13
Группа: Проверенные
Ранг: Участник клуба
Сообщений: 2524
Репутация: 436 ±
Замечаний: 0% ±

Excel 2013/2016
AVI, Может надо расчет вынести и форматировать строку?
В варианте от Pelena, расчет проводится для каждой ячейки, что на большом объеме сказывается на скорость.
К сообщению приложен файл: Copy_of_981.xlsx(14.5 Kb)


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеAVI, Может надо расчет вынести и форматировать строку?
В варианте от Pelena, расчет проводится для каждой ячейки, что на большом объеме сказывается на скорость.

Автор - bmv98rus
Дата добавления - 03.06.2019 в 14:20
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выделение строки с пустой ячейкой (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2019 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!