设置VBA函数的返回值时出错

我正在对VBA进行一些简单的介绍,以自动化一些Excel工作stream程。 我有一个函数创build一个工作表并返回它。 我把它称为如下:

Dim ws As Worksheet Dim wb As Workbook Set wb = Application.ActiveWorkbook Set ws = makeNewWorksheet(wb) 

function是:

 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 

我所能find的在线文档都不适用于这种情况。 一切都已定义,而wsvariables有一个值。

编辑:Re。 下面接受的答案。 以下是 set关键字的解释。

这个:

 makeNewWorksheet = ws 

应该:

 set makeNewWorksheet = ws