设置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的在线文档都不适用于这种情况。 一切都已定义,而ws
variables有一个值。
编辑:Re。 下面接受的答案。 以下是 set
关键字的解释。
这个:
makeNewWorksheet = ws
应该:
set makeNewWorksheet = ws