【发布时间】:2016-03-15 17:23:11
【问题描述】:
我在 Excel 上遇到 VBA 错误时遇到了困难,有人可以帮我理解这个错误的含义吗?
“VBA Object variable or With block variable not set error”
我的函数应该检查一个工作表是否存在,如果不创建新工作表,重命名它并返回主函数。 代码有效,但总是抛出错误..
Function GetWorksheetFromName(Name As String) As Worksheet
Dim WS As Worksheet
For Each WS In ThisWorkbook.Worksheets
If StrComp(WS.Name, Name, vbTextCompare) = 0 Then
Set GetWorksheetFromName = WS
Exit Function
End If
Next WS
With ThisWorkbook
Set WS = Worksheets.Add(After:=Sheets(.Sheets.Count))
WS.Name = Name
End With
Set GetWorksheetFromName = WS
End Function
P.S.: this 可能会有所帮助,但我仍然没有修复我的代码
【问题讨论】:
-
什么不起作用?为我工作
With GetWorksheetFromName("ABC") : .Range("A1") = 123 : End With。第一遍它创建新的工作表,第二遍它使用相同的工作表。 -
代码有效,但抛出了这个错误
-
你怎么称呼它?
-
哪一行报错?
-
我刚刚回答了这个问题,我真的不知道我是否应该留下这个问题,但至少 MSDN 链接可以有用:/