2011-10-06 2 views
0

일부 Excel 워크 플로를 자동화하기 위해 VBA를 잠시 사용하고 있습니다. 워크 시트를 만들고 반환하는 함수가 있습니다.VBA 함수의 반환 값을 설정하는 중 오류가 발생했습니다.

Dim ws As Worksheet 
Dim wb As Workbook 

Set wb = Application.ActiveWorkbook 
Set ws = makeNewWorksheet(wb) 

기능은 다음과 같습니다 :

Function makeNewWorksheet(wb) As Worksheet 
    Dim wsName As String 
    Dim ws As Worksheet 
    Dim newWs As Worksheet 

    wsName = "Bounced " & Format(Now, "dd-mm-yyyy") 
    For Each ws In wb.Worksheets 
     If ws.Name = wsName Then 
      Set newWs = ws 
      Exit For 
     End If 
    Next 
    If newWs Is Nothing Then 
     Set ws = wb.Sheets.Add 
     With ws 
      .Name = wsName 
      .Move after:=Sheets(Sheets.Count) 
     End With 
    End If 
    makeNewWorksheet = ws 
End Function 

내가 마지막 줄 (makeNewWorksheet = ws)에 함수의 반환 값을 할당 할 때, 나는 오류가 발생 :

다음과 같이 내가 전화
Object variable or With block variable not set 

이 상황에서 찾을 수있는 온라인 문서가 없습니다. 모든 것이 정의되고 ws 변수에 값이 있습니다.

편집 : Re. 받아 들인 대답은 아래에있다. Here'sset 키워드에 대한 설명입니다.

답변

3

이 :

makeNewWorksheet = ws 

가 있어야한다 :

set makeNewWorksheet = ws 
+0

덕분에, 내가 어떤 BASIC 변형을 사용했습니다 이후 오랜 시간이되었습니다. 난 그냥'set' 키워드를 찾아 위의 관련 질문에 연결했습니다. – edoloughlin

관련 문제