Страницы: 1
RSS
Передача значений выделенного диапазона в переменную
 
Добрый день уважаемые форумчане,

в очередной раз требуется помощь профессионалов VBA

На листе есть столбец с данными (столбец А), которые периодически фильтруются по определенному критерию. Отфильтрованных значений каждый раз может быть разное количество, минимум 1 - максимум 20

Пользователь выделяет отфильтрованные значения и нажимает кнопку Select, после чего срабатывает макрос, который должен выводить выделенные значения в MsgBox.

Код макроса следующий :
Код
Sub SelectData()
Dim vData As Variant

vData = Selection.SpecialCells(xlCellTypeVisible).Value
MsgBox (vData)
End Sub
проблема в том, что если выделенных значений большей чем 1, макрос выводит только первое значение, а нужно чтобы он выводил все выделенные значения из диапазона и желательно через запятую
Изменено: pinguindell - 14.10.2017 13:35:33
 
Потому что когда 'больше 1' - это массив
Код
vData = Selection.SpecialCells(xlCellTypeVisible).Value
For I = 1 To UBound(vData)
    If iData <> Empty Then
        iData = iData & ", " & vData(I, 1)
    Else
        iData = vData(I, 1)
    End If
Next
MsgBox iData
Изменено: Sanja - 14.10.2017 13:40:41
Согласие есть продукт при полном непротивлении сторон
 
Sanja,спасибо

у меня следующий вопрос относительно Вашего кода

к примеру я отфильтровал  в столбце А значения : Данные 1 и Данные 3. Выделяю эти два значения, нажимаю кнопку, но получаю ошибку Run time error 13 Type mismatch, если же я выделяю название столбца Список и эти два отфильтрованные значения Данные 1 и Данные 3, то получаю в MsgBox текст формата :
Список, Данные 1

В идеале же выделив два отфильтрованных значения Данные 1 и Данные 3 в MsgBox должен быть текст Данные 1, Данные 3
 
Вопрос не по теме
 
Для меня это пока тоже загадка  8-0  
Согласие есть продукт при полном непротивлении сторон
 
Цитата
pinguindell написал:
vData = Selection.SpecialCells(xlCellTypeVisible).Value
таким образом Вы сможете получить только первый неразрывный диапазон из видимых. Надо брать весь диапазон в массив и программно его фильтровать.
Я сам - дурнее всякого примера! ...
 
Сергей, спасибо, не знал
Согласие есть продукт при полном непротивлении сторон
Страницы: 1
Наверх