VBA:使用功能设置新工作表

时间:2015-03-25 13:21:02

标签: excel vba excel-vba

我经常使用我希望修改为函数的例程,以便能够立即设置添加的工作表,例如

Set ShP = DeleteAndAddSheet("Name")

所以这是函数:

Public Function DeleteAndAddSheet(ByVal SheetName As String) As Worksheet

For Each aShe In Sheets
    If aShe.Name <> SheetName Then
    Else
        Application.DisplayAlerts = False
        aShe.Delete
        Application.DisplayAlerts = True
        Exit For
    End If
Next aShe

Sheets.Add after:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = SheetName

DeleteAndAddSheet = ThisWorkbook.Worksheets(Worksheets.Count)

End Function

我收到错误&#39; 91&#39;在设置函数输出的最后一行,&#34;对象变量或With变量未设置&#34;

我尝试使用表格和工作表,但其中任何一个都没有工作......

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

变化

DeleteAndAddSheet = ThisWorkbook.Worksheets(Worksheets.Count)

set DeleteAndAddSheet = ThisWorkbook.Worksheets(Worksheets.Count)

答案 1 :(得分:0)

您需要将其变为SubFunction除了正在处理的单元格之外无法更改任何内容,因此Application.DisplayAlert - 语句以及尝试删除工作表会导致它抛出错误。

经过一些测试后,function似乎会让您:删除工作表,但不会更改应用程序设置。