簡體   English   中英

錯誤設置VBA函數的返回值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM