2015-11-30 36 views
1

我想写一个基于单元格输入移动到两张(服务或事件)之一的宏代码。我得到的错误'对象需要'我得到错误 - 对象需要

任何帮助来解决这个将不胜感激。

Sub GoSheetNext() 

     Dim abcd As Integer 
     abcd = ActiveWorksheet.Cells(4, 2).Value 
     If abcd > 10 Then 
      Sheets("service").Select 
      ElseIf abcd < 10 Then 
      Sheets("event").Select 

     End If 

End Sub 
+0

错误发生在哪条线上? –

+1

如果abcd = 10,会发生什么情况?错误在哪里?你有没有试过.activate? –

+0

abcd永远不会是10. –

回答

2

这仅仅是ActiveWorksheet不存在,它是ActiveSheet

正如@约翰·科尔曼提到的,你应该在你的模块的顶部添加Option Explicit,它会只有力你可以在启动代码之前声明所有变量。所以它会在这里检测到您的问题,因为它不会识别ActiveWorksheet! ;)

Sub GoSheetNext() 
Dim Test_Value As Integer 
Test_Value = ActiveSheet.Cells(4, 2).Value 

If Test_Value > 10 Then 
    Sheets("service").Select 
ElseIf Test_Value < 10 Then 
    Sheets("event").Select 
End If 

End Sub 
+2

很好的答案。也许它不会伤害提及'Option Explicit'会在突出显示'ActiveWorksheet'时给出'Variable Not Defined'错误 - 这可能更容易调试 –

相关问题