从PERSONAL.XLSB运行脚本时运行时错误“1004”

我有一个VBA脚本,当它在工作簿中的一个模块中工作正常,但如果我把它放在我的PERSONAL.XLSB文件中的一个模块,我得到这个错误:

运行时错误“1004”:

无法将工作表重命名为与另一个工作表,Visual Basic引用的对象库或工作簿相同的名称

这显然是造成错误的脚本的有问题的部分:

 .Sheets.Add(After:=.Sheets(.Sheets.Count)).Name = "ValidateData" 

这个脚本是在许多工作簿中使用的,所以为了这个工作,我觉得它必须在PERSONAL.XLSB文件中。 我不明白为什么错误只出现在来自该文件而不是它自己的文件时。

而且要清楚的是,在这个脚本中还没有一个名为ValidateData的工作表。

使用SheetExists Function如果活动工作簿中存在工作表,则函数返回TRUE

 Public Sub Add_Sheet() Dim SName As String SName = "ValidateData" If SheetExists(SName) = False Then Worksheets.Add(After:=Worksheets(Worksheets.count)).Name = SName Else MsgBox SName & " Sheet Already Exsit" End If End Sub Function SheetExists(SName As String, _ Optional ByVal WB As Workbook) As Boolean 'Chip Pearson On Error Resume Next If WB Is Nothing Then Set WB = ActiveWorkbook SheetExists = CBool(Len(WB.Sheets(SName).Name)) End Function