VBA对象variables或块variables未设置错误

我在Excel上遇到VBA错误很难,有人能帮我理解这个错误的含义吗?

“VBA对象variables或带块variables未设置错误”

我的function是检查一个表是否存在,如果不是创build新表,重命名并返回到主函数。 代码的作品,但总是抛出错误..

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 

PS: 这可能有帮助,但我还没有解决我的代码

 Set WS = .Worksheets.Add(After:=.Sheets(.Sheets.Count)) 

请注意“ Worksheets Sheets和“ Worksheets之前添加的时间段 – 您当前的代码将处理“活动工作簿”的表格集合,而不是“本工作簿”。

该错误实际上列在MSDN链接上

您试图使用已设置为Nothing的对象variables

设置MyObject = Nothing'释放对象。

MyCount = MyObject.Count'对发布的对象进行引用。

重新指定对象variables的引用。 例如,使用新的Set语句来设置对该对象的新引用。

 Dim WS As Worksheet Sheets("Config").Select WS = GetWorksheetFromName(Range("B8").Value) 

我的错误是在最后一行,我错过了SET

 Set WS = GetWorksheetFromName(Range("B8").Value) 

感谢Tim Williams和Scott Craner的快速帮助