Excel 函数从范围返回唯一数组
我正在寻找一种将内存中的选择声明为变量“rRange”的方法,我希望删除重复项并转换为数组 我尝试了以下方法:Excel 函数从范围返回唯一数组,excel,vba,Excel,Vba,我正在寻找一种将内存中的选择声明为变量“rRange”的方法,我希望删除重复项并转换为数组 我尝试了以下方法: Function getArray() Dim rRange As Range Dim newRange As Range Dim resultArray() As Variant Set rRange = Selection newRange = rRange.RemoveDuplicates getArray = WorksheetFunction.Tr
Function getArray()
Dim rRange As Range
Dim newRange As Range
Dim resultArray() As Variant
Set rRange = Selection
newRange = rRange.RemoveDuplicates
getArray = WorksheetFunction.Transpose(newRange)
End Function
但是我在.RemoveDuplicates部分遇到了一个“类型不匹配”错误,在过去的几个小时里,我一直在处理这个问题,只是无法正确处理…建议?
RemoveDuplicates
不会返回值。调用该方法后,您需要重新计算范围的范围。不确定您的意思,如何重新计算?请记住,我不想实际影响我从中读取数据的电子表格。如果不修改工作表,您的选项会更少。有两个选项:1)创建新工作表,并将范围复制到新工作表。对复制的范围调用removedupplicates
,将该范围复制到内存数组中,然后删除新工作表。2) 将范围复制到内存阵列中,然后编写自己的RemoveDuplicates
方法。不幸的是,RemoveDuplicates
是Range
类的成员,Range
对象总是存储在工作表中。我意识到了这个问题,选择了选项1,谢谢!