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

Вход

Регистрация

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

 

= Мир MS Excel/Как понять какие значения в пустых ячейках ? - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как понять какие значения в пустых ячейках ? (Макросы/Sub)
Как понять какие значения в пустых ячейках ?
t330 Дата: Воскресенье, 19.01.2020, 17:43 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 147
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Добрый день всем!

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

в коде ниже [vba]
Код
debug.print lLastRow
[/vba]выдает , что последняя строка где есть данные = 19 , хотя в видимой глазом таблице всего 11 строк!

Кроме того, далее я через [vba]
Код
ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks)
[/vba] закрашиваю все пустые ячейки в используемом диапазоне и закрашиваются все ячейки с 12 по 19 строку, то есть получается , что в этих ячейках данных нет...

Тогда странно почему [vba]
Код
lLastRow = Cells.SpecialCells(xlLastCell).Row
[/vba] = 19 , если с 12 по 19 строку данных нет?

И еще один момент Почему-то закрашивается ячейка С5.... В ней же есть значение и она не пустая?

Помогите пожалуйста разобраться...

[vba]
Код


Option Explicit

Sub Test()
Dim lLastRow As Long, lLastCol As Long

lLastCol = Cells.SpecialCells(xlLastCell).Column
lLastRow = Cells.SpecialCells(xlLastCell).Row

Debug.Print lLastCol, lLastRow

    ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks).Interior.Color = vbRed

End Sub

[/vba]

К сообщению приложен файл: test2.xlsm (14.6 Kb)


Сообщение отредактировал t330 - Воскресенье, 19.01.2020, 18:24
 
Ответить
СообщениеДобрый день всем!

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

в коде ниже [vba]
Код
debug.print lLastRow
[/vba]выдает , что последняя строка где есть данные = 19 , хотя в видимой глазом таблице всего 11 строк!

Кроме того, далее я через [vba]
Код
ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks)
[/vba] закрашиваю все пустые ячейки в используемом диапазоне и закрашиваются все ячейки с 12 по 19 строку, то есть получается , что в этих ячейках данных нет...

Тогда странно почему [vba]
Код
lLastRow = Cells.SpecialCells(xlLastCell).Row
[/vba] = 19 , если с 12 по 19 строку данных нет?

И еще один момент Почему-то закрашивается ячейка С5.... В ней же есть значение и она не пустая?

Помогите пожалуйста разобраться...

[vba]
Код


Option Explicit

Sub Test()
Dim lLastRow As Long, lLastCol As Long

lLastCol = Cells.SpecialCells(xlLastCell).Column
lLastRow = Cells.SpecialCells(xlLastCell).Row

Debug.Print lLastCol, lLastRow

    ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks).Interior.Color = vbRed

End Sub

[/vba]


Автор - t330
Дата добавления - 19.01.2020 в 17:43
RAN Дата: Воскресенье, 19.01.2020, 18:27 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
xlLastCell привязано к UsedRange
А очистка ячейки не удаляет ее из UsedRange
[vba]
Код
Sub t2()
'Rows("12:19").Delete
Debug.Print ActiveSheet.UsedRange.Address
Debug.Print lLastCol, lLastRow
lLastCol = Cells.SpecialCells(xlLastCell).Column
lLastRow = Cells.SpecialCells(xlLastCell).Row
Debug.Print lLastCol, lLastRow
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Воскресенье, 19.01.2020, 18:28
 
Ответить
СообщениеxlLastCell привязано к UsedRange
А очистка ячейки не удаляет ее из UsedRange
[vba]
Код
Sub t2()
'Rows("12:19").Delete
Debug.Print ActiveSheet.UsedRange.Address
Debug.Print lLastCol, lLastRow
lLastCol = Cells.SpecialCells(xlLastCell).Column
lLastRow = Cells.SpecialCells(xlLastCell).Row
Debug.Print lLastCol, lLastRow
End Sub
[/vba]

Автор - RAN
Дата добавления - 19.01.2020 в 18:27
t330 Дата: Воскресенье, 19.01.2020, 18:50 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 147
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
xlLastCell привязано к UsedRange


Понял, спасибо!

Можете пояснить еще один момент?
Почему-то вот этим кодом:
[vba]
Код
ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks).Interior.Color = vbRed
[/vba]

закрашивается ячейка С5 (объединенная).... хотя ней есть значение и она не пустая...


Сообщение отредактировал t330 - Воскресенье, 19.01.2020, 18:50
 
Ответить
Сообщение
xlLastCell привязано к UsedRange


Понял, спасибо!

Можете пояснить еще один момент?
Почему-то вот этим кодом:
[vba]
Код
ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks).Interior.Color = vbRed
[/vba]

закрашивается ячейка С5 (объединенная).... хотя ней есть значение и она не пустая...

Автор - t330
Дата добавления - 19.01.2020 в 18:50
RAN Дата: Воскресенье, 19.01.2020, 19:09 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Объединенные ячейки = зло.
[vba]
Код
Debug.Print ActiveSheet.Rows(5).SpecialCells(xlCellTypeBlanks).Address
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеОбъединенные ячейки = зло.
[vba]
Код
Debug.Print ActiveSheet.Rows(5).SpecialCells(xlCellTypeBlanks).Address
[/vba]

Автор - RAN
Дата добавления - 19.01.2020 в 19:09
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как понять какие значения в пустых ячейках ? (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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