Excel 设置VBA函数的返回值时出错
我正在对VBA进行一次短暂的尝试,以自动化一些Excel工作流。我有一个创建工作表并返回它的函数。我称之为:Excel 设置VBA函数的返回值时出错,excel,vba,Excel,Vba,我正在对VBA进行一次短暂的尝试,以自动化一些Excel工作流。我有一个创建工作表并返回它的函数。我称之为: 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 W
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
当我试图在最后一行(makenewsheet=ws
)上分配函数的返回值时,我得到一个错误:
Object variable or With block variable not set
我能找到的在线文档似乎都不适用于这种情况。一切都已定义,ws
变量有一个值
编辑:Re。下面是公认的答案。集合
关键字的说明。此:
makeNewWorksheet = ws
应该是:
set makeNewWorksheet = ws
这:
应该是:
set makeNewWorksheet = ws
谢谢,我已经很久没有使用任何基本的变体了。我只是查了一下
set
关键字,并链接到上面的一个相关问题。谢谢,我已经很久没有使用任何基本变量了。我只是查找了set
关键字,并链接到上面的一个相关问题。