错误91:对象variables或未设置块variables

我有以下代码在Excel 2007中正常工作。

但是,它在Excel 2010上给出以下错误:

错误91:对象variables或未设置块variables。

任何想法如何解决? 我检查了其他职位没有运气。

更新:请注意,如果包含vba代码的工作簿是activeworkbook,代码工作正常。

但是我正在做的是打开另一个工作簿,然后按F3(运行此代码)。 那是当它失败的时候。 所以基本上iif工作簿与代码是积极的,它的工作原理,如果它是另一个工作簿是积极的,它会给出错误。

Sub Process_current_Sheet() Dim WS_Count As Integer Dim i As Integer Dim sheet_name As String WS_Count = ActiveWorkbook.Worksheets.Count nameofworkbook = ActiveWorkbook.Name ' Begin the loop. For i = 1 To WS_Count If InStr(ActiveWorkbook.Worksheets(i).Name, "xxx") > 0 Then sheet_name1 = activeWorkbook.Worksheets(i).Name End If Next i End Sub 

发现问题。
第二个工作簿,我已经打开,并且是activeworkbook,也有一个macros,所以它正在等待用户按macros激活/不macros。

如果你不这样做,你会得到错误提到…
如果您激活该工作簿上的macros(macrosbutton不再显示),那么我的macros工作正常。

可能不是解决办法,但是这将有助于确认罪魁祸首究竟是谁(告诉我们是否有错误,如果有,哪个错误和哪一行):

 Sub Process_current_Sheet() Dim WS_Count As Integer, _ i As Integer, _ sheet_name As String, _ wB As Workbook Set wB = ActiveWorkbook WS_Count = wB.Worksheets.Count nameofworkbook = wB.Name ' Begin the loop. For i = 1 To WS_Count If InStr(wB.Worksheets(i).Name, "xxx") > 0 Then sheet_name1 = wB.Worksheets(i).Name End If Next i End Sub