в очередной раз требуется помощь профессионалов VBA
На листе есть столбец с данными (столбец А), которые периодически фильтруются по определенному критерию. Отфильтрованных значений каждый раз может быть разное количество, минимум 1 - максимум 20
Пользователь выделяет отфильтрованные значения и нажимает кнопку Select, после чего срабатывает макрос, который должен выводить выделенные значения в MsgBox.
Код макроса следующий :
Код
Sub SelectData()
Dim vData As Variant
vData = Selection.SpecialCells(xlCellTypeVisible).Value
MsgBox (vData)
End Sub
проблема в том, что если выделенных значений большей чем 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
к примеру я отфильтровал в столбце А значения : Данные 1 и Данные 3. Выделяю эти два значения, нажимаю кнопку, но получаю ошибку Run time error 13 Type mismatch, если же я выделяю название столбца Список и эти два отфильтрованные значения Данные 1 и Данные 3, то получаю в MsgBox текст формата : Список, Данные 1
В идеале же выделив два отфильтрованных значения Данные 1 и Данные 3 в MsgBox должен быть текст Данные 1, Данные 3