Здравствуйте! Ребята для загрузки значений в комбобоксы, последней и верхней заполненной строки по столбцу 2 в открытых строках умной таблицы, использую функцию End(xlDown) и End(xlUp). Но данный метод определяет значение только нижней заполненной строки, также данный метод учитывает и скрытые строки. Каким образом в предлагаемом примере определить данные верхних и нижних открытых строк умной таблицы.
Здравствуйте! Ребята для загрузки значений в комбобоксы, последней и верхней заполненной строки по столбцу 2 в открытых строках умной таблицы, использую функцию End(xlDown) и End(xlUp). Но данный метод определяет значение только нижней заполненной строки, также данный метод учитывает и скрытые строки. Каким образом в предлагаемом примере определить данные верхних и нижних открытых строк умной таблицы.Сергей13
Для умной таблицы несколько другие критерии определения последней и верхней заполненной строки по столбцу
Укажите в каких разделах статьи уловить данные критерии. Пока что для определения данных по столбцу нижней открытой строки внутри таблице данная функция как бы дает тоже положительный результат [vba]
Для умной таблицы несколько другие критерии определения последней и верхней заполненной строки по столбцу
Укажите в каких разделах статьи уловить данные критерии. Пока что для определения данных по столбцу нижней открытой строки внутри таблице данная функция как бы дает тоже положительный результат [vba]
Sub Period() With ActiveSheet.ListObjects(1) FormDemand.Cmb1.Value = .DataBodyRange(1, 2) FormDemand.Cmb2.Value = .DataBodyRange(.ListRows.Count, 2) End With End Sub
[/vba]
[vba]
Код
Sub Period() With ActiveSheet.ListObjects(1) FormDemand.Cmb1.Value = .DataBodyRange(1, 2) FormDemand.Cmb2.Value = .DataBodyRange(.ListRows.Count, 2) End With End Sub
Дело в том, что к таблице может быть применен фильтр, тогда первая и последняя открытые строки могут быть любыми из строк таблицы, именно с них и необходимо снять данные по столбцу 2, в противном случаи, например для верхней строки столбца 2 можно просто указать верхнюю фиксированную ячейку таблицы
[vba]
Код
Cmb1.Value = Range(“B8”)
[/vba] но необходимо именно с первой открытой среди скрытых или открытых строк по столбцу 2.
Kuzmich,
Дело в том, что к таблице может быть применен фильтр, тогда первая и последняя открытые строки могут быть любыми из строк таблицы, именно с них и необходимо снять данные по столбцу 2, в противном случаи, например для верхней строки столбца 2 можно просто указать верхнюю фиксированную ячейку таблицы
[vba]
Код
Cmb1.Value = Range(“B8”)
[/vba] но необходимо именно с первой открытой среди скрытых или открытых строк по столбцу 2.Сергей13
Сообщение отредактировал Сергей13 - Воскресенье, 13.06.2021, 20:23
Sub Period() With ActiveSheet.ListObjects(1) FormDemand.Cmb1.Value = .DataBodyRange.SpecialCells(xlCellTypeVisible)(1, 2) FormDemand.Cmb2.Value = .DataBodyRange.SpecialCells(xlCellTypeVisible)(.DataBodyRange.SpecialCells(xlCellTypeVisible).Rows.Count, 2) End With End Sub
[/vba]
[vba]
Код
Sub Period() With ActiveSheet.ListObjects(1) FormDemand.Cmb1.Value = .DataBodyRange.SpecialCells(xlCellTypeVisible)(1, 2) FormDemand.Cmb2.Value = .DataBodyRange.SpecialCells(xlCellTypeVisible)(.DataBodyRange.SpecialCells(xlCellTypeVisible).Rows.Count, 2) End With End Sub
Kuzmich, Да эту, одной строкой. Не постоянно, но часто выводит значения идентичные первой строки. Заменил на ранее предложенную мной, для нижних строк. Вроде работает, спасибо!
Kuzmich, Да эту, одной строкой. Не постоянно, но часто выводит значения идентичные первой строки. Заменил на ранее предложенную мной, для нижних строк. Вроде работает, спасибо!Сергей13
Сообщение отредактировал Сергей13 - Понедельник, 14.06.2021, 12:29