VBA:使用function来设置新的工作表
我经常使用那个我想要修改的函数,以便能够立即设置添加的表单,就像这样
Set ShP = DeleteAndAddSheet("Name")
所以这里是function:
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
当设置函数的输出“Object variable or With variable not set”时,我在最后一行出现错误“91”
我试过表格和工作表,他们都没有工作…
任何想法?
更改
DeleteAndAddSheet = ThisWorkbook.Worksheets(Worksheets.Count)
至
set DeleteAndAddSheet = ThisWorkbook.Worksheets(Worksheets.Count)
你需要把它变成一个Sub
而Function
不能改变它正在工作的单元格,所以Application.DisplayAlert
-statements,以及试图删除一个工作表会导致它抛出一个错误。
经过一些testing,似乎一个function
会让你例如删除一张纸,但它不会让更改应用程序的设置。