2013-09-05 3 views
0

하위에서 함수를 호출하지만 작동하지 않습니다. 필자는 왜 그렇게 많은 시간을 보냈지 만 나는 그것을 보지 못했다. 컴파일 오류가 발생합니다. 예상되는 배열입니다.함수 오류, 배열로 전달

다음은 전체 코드입니다. 내가 문자열로 문제가있는 라인을 통해

하위 innout()

Dim numclosed As Long, numnew As Long 
Dim lblvar As Variant 
Dim tblcr As Range 
Dim lrcr As Long 
Dim finishdates As Range 
Dim lastupdate As Long, msg As Long 



Sheets("combined_report").Select 

    lrcr = ActiveSheet.Range("A1").Offset(ActiveSheet.Rows.count - 1, 0).End(xlUp).Row 
    tblcr = Range("A6:AB" & lrcr) 
    lastupdate = Range("F2").Value 


    finishdates = Range("T6:T" & lrcr) 

    For Each cell In finishdates 

     If cell.Value >= lastupdate And cell.Value < Date Then 

      If cell.Offset(0, -5).Value = "Completed" Then 

        numclosed = numclosed + 1 

      End If 

     End If 

    Next 

Sheets("Tasks_to_do").Select 

    Dim lrttd As Long 
    Dim r As Long 
    Dim numttd As Long 
    Dim svrange As Range 
    Dim resp As String, svname As String 

    lrttd = ActiveSheet.Range("A1").Offset(ActiveSheet.Rows.count - 1, 0).End(xlUp).Row 
    numnttd = lrttd - 1 

    Set svrange = Range("K2:K" & lrttd) 

    For Each cell In svrange 
     If cell.Value = "" Then 
      numnew = numnew + 1 
      resp = cell.Offset(0, -6).Value 
'ERROR ON THIS LINE     
      cell.Value = svname(resp) 
     End If 
    Next 

    msg = MsgBox("*************************" & Chr(13) & "Items closed yesterday: " & numclosed & Chr(13) & "New items as of now: " & numnew, vbOKOnly, "Mproduct item activity") 

최종 하위

기능 svname (문자열로 RESP)을 주석

Dim respdb As Range 
lrs As Long 

Sheets("Supervisors").Select 
    lrs = ActiveSheet.Range("A1").Offset(ActiveSheet.Rows.count - 1, 0).End(xlUp).Row 
    respdb = Range("A2:A" & lrs) 
    For Each cell In respdb 
     If cell.Value = resp Then 
      svname = cell.Offset(0, 1).Value 
      Exit Function 
     End If 
    Next 

최종 기능

감사합니다 앞으로!

답변

0

svname을 함수 외에도 지역 변수로 선언했습니다. 두 번째 선언을 제거하면 작동합니다.

Dim resp As String', svname As String <- error caused by this bit