【问题标题】:VBA Select a sheet when the workbook is openedVBA 在打开工作簿时选择一个工作表
【发布时间】:2019-02-13 05:40:43
【问题描述】:

当我打开我的工作簿时,以下程序无法运行。可能的原因是什么?

' Select the first sheet when the workbook is opened.
Private Sub Workbook_Open()

    Sheet4.Select
    Sheet4.Range("B1").Select

End Sub

【问题讨论】:

  • 参见 this question for using Sheets(sheet_name).Selectthis question for selecting a range - 这也说明了为什么应该使用 Activate
  • 谢谢。但我仍然不知道问题是什么
  • 仔细看,你的代码只差一个字
  • 如果它不起作用,我能知道你得到的错误是什么吗?您正在使用 Sheet4 或工作表(“Sheet4”)。供您参考,Sheet4 是工作表的代号。 “Sheet4”(带双引号)是工作表的名称
  • 这个方法应该在ThisWorkbook模块里面。你把它放在哪里了?

标签: vba


【解决方案1】:

如果您点击alt+F11 进入 VBA 代码编辑器。在左侧,在文件名下,您将看到不同的工作表,以及您可能拥有的任何模块。如果您进入ThisWorkbook 模块 并将您的代码放在那里,它会在您启动 Excel 文件时自动运行。

【讨论】:

  • 是的,但仍然不起作用。我认为工作簿存在一个主要问题,因为这些代码在其他工作簿中有效。
【解决方案2】:

您正在使用“选择”方法而没有先激活工作表!

是的,当您上次关闭工作簿时,当前工作表将保留在内存索引中,当您再次打开同一工作簿时,指针会根据索引号搜索最近使用的工作表。

'Here is the code
Private Sub Workbook_Open()
    Sheet4.Activate
    Sheet4.Select
    Sheet4.Range("B1").Select
End Sub

使用“选择方法”而不激活父对象是犯罪。哈哈

希望这会对您有所帮助。

【讨论】:

    猜你喜欢
    • 2020-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-16
    • 1970-01-01
    相关资源
    最近更新 更多