Vba 每次打开工作簿时,初始化工作簿以打开到同一工作表

Vba 每次打开工作簿时,初始化工作簿以打开到同一工作表,vba,excel,Vba,Excel,我有一个excel工作簿,它有大量的工作表。我知道excel文档将打开到您所在的最后一张工作表。但是,它们是让工作簿每次打开到同一页的一种方式吗?(如果我需要使用VBA也可以)提前感谢您的帮助 在此工作簿的代码模块中包含工作簿\u打开事件 Private Sub Workbook_Open() 'Instead of "Sheet1", use whichever sheet you want to activate Worksheets("Sheet1").Activate E

我有一个excel工作簿,它有大量的工作表。我知道excel文档将打开到您所在的最后一张工作表。但是,它们是让工作簿每次打开到同一页的一种方式吗?(如果我需要使用VBA也可以)提前感谢您的帮助

在此工作簿的代码模块中包含工作簿\u打开事件

Private Sub Workbook_Open()
    'Instead of "Sheet1", use whichever sheet you want to activate
    Worksheets("Sheet1").Activate
End Sub

Excel的
工作簿\u Open()
事件在加载过程中触发过快,工作簿本身的某些方法或属性无法可靠使用。只需在
BeforeClose
事件处理程序中激活要返回的工作表即可

'In ThisWorkbook
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Worksheets("SheetWhatever").Activate
End Sub

是否有其他方法,因为它告诉我在打开文档时出错,并且对我无效。是否所有的工作表都“可见”,或者在打开工作簿时您希望显示的工作表当前是“隐藏”的?是的,我确保所有工作表都可见嗯,您是否检查了使用的工作表名称是否正确?代码给你的错误是什么?啊,共产国际刚刚发布了一个答案,指出工作簿打开有时会触发得太早。请尝试使用共产国际的方法。谢谢,它正是我所希望的工作方式,很高兴知道工作簿打开并不总是有效。@cfaidl05:出于您的考虑,
workbook\u BeforeClose
事件既不可靠。是否触发此事件取决于您关闭文件的方式:(1)关闭文件但不关闭Excel,(2)使用右上角的
X
关闭Excel,(3)使用
Alt
+
F4
关闭Excel,或(4)在任务管理器中终止Excel进程。仅在(1)和(2)中,
\u BeforeClose
事件每次都会被触发。对于(3)它大部分时间都会被触发,而对于(4)永远不会被触发。@Ralph-我怀疑在任务管理器中终止某个进程后,是否有人希望运行任何东西。只是为了完整性。然而,你当然是对的,我发表这一评论主要是因为当你关闭Excel(如上所述)时,事件并不总是被触发。不久前,我们遇到了一个相当麻烦的场景,直到我们发现了这个场景:(主要是在评论中)。@Ralph-我不确定将
Cancel
设置为true的相关性是什么,但是如果你有更好的答案,请随意发布。