Страницы: 1
RSS
Видимый диапазон в ListBox
 
Добрый вечер! Подскажите каким способом лучше поместить видимые ячейки столбца после фильтрации в ListBox? Использую умные таблицы.
Код
Me.Tag_List.List = Application.Transpose(Worksheets("TKP").Range("B2", "B" & (Cells(Rows.Count, 1).End(xlUp).Row)))
Попробовал так, но вылетает ошибка application defined or object defined error
Код
Me.Tag_List.List = Worksheets("TKP").Columns(2).SpecialCells(xlVisible).Value
так тоже ошибка...  
 
Проходите по строкам, если видимая - данные в листбокс, если скрытая - пропускаем.
Большего без вашего файла-примера сказать нечего.
Изменено: Михаил С. - 14.12.2018 20:46:35
 
Я бы перебирал строки на листе и видимые заносил в массив. Затем этот массив скормил бы ЛистБоксу.
 
Юрий М, Михаил С., была такая идея, думал может получится обойтись без цикла)
Раз так будем делать цикл, спасибо за ответ!
 
Почему-то заполнение массива выдает ошибку subscript out of range. что я делаю не так?
Код
Sub Filling()
Dim arrKP() As Variant
Dim Rcnt As Range
For Each Rcnt In Worksheets("TKP").Columns(2).SpecialCells(xlVisible)
    arrKP(Rcnt.Row - 1) = Rcnt.Value
Next
End Sub
 
Цитата
Neyrovision написал: что я делаю не так?
Файл-пример не прикладываете. По кофейной гуще погадать. что у Вас там не так?
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Neyrovision написал: что я делаю не так
откуда нам без файла понять?
Зы.
Да и вообще весь макрос - не так.
Изменено: Михаил С. - 15.12.2018 05:22:28
 
Цитата
Neyrovision написал:
что я делаю не так?
наверное забываете объявить размер массива.
 
Dima S, вы правы, спасибо за ответ
В результате переписал все в виде функции, заполнить listBox видимыми ячейками без цикла так и не вышло.
 
Neyrovision, пример получения массива из видимых ячеек по второму столбцу:
Код
Dim aa As Range, a&, b&, arr()
With ActiveSheet
  b = .UsedRange.Row
  For Each aa In .Rows(b + 1 & ":" & .UsedRange.Rows.Count + b - 1).Columns(2).SpecialCells(xlVisible)
    a = a + 1: ReDim Preserve arr(1 To a): arr(UBound(arr)) = aa.Value
  Next
End With
 
Цитата
Neyrovision написал:
заполнить listBox видимыми ячейками без цикла так и не вышло
Без цикла - скопировать видимые в другой столбец (возможно, на другой лист). Значения образуют непрерывный диапазон, и его можно считать в массив или назначить .RowSource.
 
Цитата
Neyrovision написал:
что я делаю не так?
Вы пытаетесь присвоить значение элементу массива за пределами выделенных под него размеров
Изменено: Ігор Гончаренко - 16.01.2019 02:17:24
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Страницы: 1
Наверх