gpt4 book ai didi

arrays - 如何将过滤后的范围复制到数组中? (Excel VBA)

转载 作者:行者123 更新时间:2023-12-02 12:53:40 25 4
gpt4 key购买 nike

我使用此公式将唯一记录从 A 列复制到 B 列。

Range("A1", Range("A100").End(xlUp)).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("B1"), Unique:=True

如何将过滤后的结果放入 Excel VBA 中的数组中,而不是将其复制到 B 列中?

最佳答案

距离提出这个问题已经整整一年了,但我今天遇到了同样的问题,这是我的解决方案:

Function copyFilteredData() As Variant
Dim selectedData() As Variant
Dim aCnt As Long
Dim rCnt As Long

Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Select
On Error GoTo MakeArray:
For aCnt = 1 To Selection.Areas.Count
For rCnt = 1 To Selection.Areas(aCnt).Rows.Count
ReDim Preserve SelectedData(UBound(selectedData) + 1)
selectedData(UBound(selectedData)) = Selection.Areas(aCnt).Rows(rCnt)
Next
Next

copyFilteredData = selectedData
Exit Function

MakeArray:
ReDim selectedData(1)
Resume Next

End Function

这将使数组的元素 0 为空,但 UBound(SelectedData) 返回选择中的行数

关于arrays - 如何将过滤后的范围复制到数组中? (Excel VBA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11995761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com