首页 文章

如何仅将可见/已过滤的数组值复制到剪贴板?

提问于
浏览
0

所以我有一个数据工作表,我想将逗号分隔的数组复制到我的剪贴板 . 如果我必须先将值粘贴到单元格中,那也没关系 . 工作表上有自动过滤器并已过滤 . 我只想选择由于过滤而当前可见的值,而不是整个数组 .

数组在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 回答

  • -2

    试试这个代码

    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
    
  • 1

    范围(“P2:P”和单元格(Rows.Count,“P”) . End(xlUp).Row).SpecialCells(xlCellTypeVisible)

相关问题