[英]Error setting return value of a VBA function
我正在嘗試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 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
變量具有值。
編輯:重新。 下面接受的答案。 這是 set
關鍵字的說明。
這個:
makeNewWorksheet = ws
應該:
set makeNewWorksheet = ws
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.