2016-10-19 5 views
0

고유 한 번호가없는 시트 1의 열 1에 필터를 사용하고 Z 열에서 필터링 된 값을 배열 (arr) 개체로 가져 와서 해당 값을 " 대시 보드 "시트. sheet1의 1 열의 모든 고유 값에 대해이 프로세스를 반복하십시오. 여러 오류 1. Join() 메소드에서 "잘못된 프로 시저 호출 또는 인수"가 발생합니다. 2. rng 객체 및 배열에 값 가져 오기. 이 문제가 어디서 잘못 될지에 대한 도움을받을 수 있습니까? 많은 감사. 에 대한 매우 귀하의 게시물이 요구 Error는 도움으로Excel에서 잘못된 프로 시저 호출 또는 인수

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 
+0

원인을 만들 수 있습니다 지정한 범위 길이가 코드에서 호출하는 데이터의 길이를 초과합니다. – GNMercado

답변

0

, 그것은 나오는 : Join() 함수는 을 요구하면서 arr 이후

Worksheets("Dashboard").Range("E" & i).Resize(UBound(arr, 1)).Value = Join(arr, " ") 

차원 배열입니다 하나 - 차원 하나

당신이 다음해야하십시오 간단한 변형 등

  • 선언 도착하십시오 한 차원 배열을 생성 할 수 있도록

    Dim arr As Variant 
    
  • 이 방법으로 그것을 채우기

    arr = Application.Transpose(rng.Value) 
    

날 것으로 보인다 코드가 좀 더 문제

먼저이 오류를 수정하려면 다음, 이러한 문제가 실제로 발생해야하고 해결할 수 안, 새 게시물이의

+0

@ 램, 끝내 줬어? – user3598756