【发布时间】:2016-10-19 14:17:31
【问题描述】:
我在 sheet1 的 column1 上使用具有唯一编号的过滤器,将过滤后的值从 Z 列获取到数组 (arr) 对象中,并将这些值作为字符串粘贴到“仪表板”表的一个单元格中。对 sheet1 的第 1 列上的所有唯一值重复此过程。我收到多个错误 1. Join() 方法中的“无效的过程调用或参数”。 2. 将值放入 rng 对象和数组。我可以得到你的帮助,我在哪里出错了。非常感谢。
Dim d As Object, c As Range, k, tmp As String
Dim TestRg As Range
Dim arr() As Variant
Dim i As Integer
Dim myCell As Range
Dim rng As Range
i = 2
Set d = CreateObject("scripting.dictionary")
Columns(1).Select
For Each c In Selection
tmp = Trim(c.Value)
If Len(tmp) > 0 Then d(tmp) = d(tmp) + 1
Next c
For Each k In d.Keys
If IsNumeric(k) Then
Set TestRg = Range("A1:AQ" & LastRow(ActiveSheet))
TestRg.AutoFilter Field:=1, Criteria1:=k, Operator:=xlFilterValues
LasRow = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
Set rng = ActiveSheet.Range("Z1" & ":" & "Z" & LasRow).SpecialCells(xlCellTypeVisible)
rng.Activate
arr = rng.Value
Worksheets("Dashboard").Range("A" & i) = k
Worksheets("Dashboard").Range("E" & i).Resize(UBound(arr, 1)).Value = Join(arr, " ")
i = i + 1
Erase arr
End If
Next k
【问题讨论】:
-
可能的原因是您指定的范围长度超过了您在代码上调用的数据长度。