Как скопировать только видимые / отфильтрованные значения массива в буфер обмена? - PullRequest
0 голосов
/ 09 декабря 2018

Итак, у меня есть лист данных, и я хочу скопировать массив с разделителями-запятыми в буфер обмена.Если мне сначала нужно вставить значение в ячейку, это тоже хорошо.На листе автофильтры включены и фильтруются.Я только хочу выбрать значения, которые в настоящее время видны из-за фильтрации, а не всего массива.

Массив находится в столбце P и начинается в P2.Я настроил LastRow и смог заставить работать часть, разделенную запятыми, но у меня проблемы с копированием в часть буфера обмена и только часть с видимыми значениями.

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

Dim LastRow As Long
LastRow = Range("P" & Rows.Count).End(xlUp).Row

Dim arr
arr = Join(Application.Transpose(Range("P2:P" & LastRow).Value), ",")

Ответы [ 2 ]

0 голосов
/ 09 декабря 2018

Попробуйте этот код

Sub Test()
Dim arr, rng As Range, c As Range, n As Long

Set rng = Range("P2:P" & Cells(Rows.Count, "P").End(xlUp).Row).SpecialCells(xlCellTypeVisible)
ReDim a(1 To rng.Cells.Count)

For Each c In rng
    n = n + 1: a(n) = c.Value
Next c

arr = Join(a, ",")
End Sub
0 голосов
/ 09 декабря 2018

Диапазон («P2: P» и ячейки (Rows.Count, «P»). Конец (xlUp) .Row). SpecialCells (xlCellTypeVisible)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...