命名工作表的对象必需错误

时间:2014-01-28 11:12:16

标签: excel-vba vba excel

 Set Nightletter = ActiveWorkbook

 Nightletter.Sheets("XPT SUMMARY").Activate

 Range("A2").Activate

对于此代码,它还显示第二行上的Object Required错误。 我把它改成了

Nightletter.Sheets("XPT SUMMARY").Activate

Activesheet.Range("A2").Activate

它也没有用。

1 个答案:

答案 0 :(得分:1)

如果上述评论中的建议尚未解决您的问题,请尝试执行以下操作。

打开Excel的新副本。创建一个新工作簿,并将其另存为“myWorkbook.xlsm” - 启用了宏的工作簿。确保它至少有两张纸。

现在打开VBA编辑器,创建一个新模块,然后输入以下代码:

Option Explicit

Sub actSheet()
  ' simple code to activate Sheet2 in myWorkbook.xlsm
  Dim wb as Workbook
  Dim ws as Worksheet

  Set wb = Application.Workbooks("myWorkbook.xlsm")
  Set ws = wb.Sheets("Sheet2")

  If Not ws.Visible = xlSheetVisible Then ws.Visible = xlSheetVisible
  ws.Activate

End Sub

我正在使用我认为最适合您所做的事情(虽然几乎没有必要激活工作表 - 请参阅上面Siddharth Rout评论中的优秀链接)。具体做法是:

  • Option Explicit开始(因此您必须声明每个变量)
  • 包含评论以描述您的功能
  • 声明所有使用的变量
  • 根据工作簿和名称构建对工作表的引用:名称不太可能更改而不是命令
  • 确保您要激活的工作表是可见的

最后 - 与你上面所做的相比;如果你真的无法区分,而你仍然收到错误,请回来告诉我们。