0
我正在簡要介紹VBA以自動化一些Excel工作流程。我有一個創建工作表並返回它的函數。我把它叫做如下:錯誤設置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's關於set
關鍵字的解釋。
謝謝,它是因爲我已經使用的任何基本型很長一段時間。我只是查找了'set'關鍵字並鏈接到上面的相關問題。 – edoloughlin