【问题标题】:Excel vba Hide worksheetsExcel vba 隐藏工作表
【发布时间】:2016-01-31 18:12:48
【问题描述】:

我有多个带有宏的工作表,一些工作表使用宏中的其他工作表。 我只想让 1 个工作表可见,其余的必须隐藏。如果我隐藏工作表,宏不会运行。

我的错误是什么?

【问题讨论】:

  • 不要在你的“宏”中使用.Select

标签: excel vba


【解决方案1】:

如果工作表被隐藏并且宏没有先取消隐藏工作表,那么它将不起作用。您可以添加一些简单的代码来处理它,例如:

If sheets("sheet1").visible = false
Then sheets("sheet1").visible = true

这将测试它是否可见,如果不可见则取消隐藏。

【讨论】:

  • 真的值得把它放在If 声明中吗?我的意思是,这样 Excel 必须至少执行一项操作,有时甚至执行两项操作。如果您只执行sheets("sheet1").visible = true Excel 始终执行一个操作,即使 Sheet1 可见,它也不会产生错误。
  • 我总是将它添加到 if 语句中。如果您一直在查看选项卡并忘记隐藏它,然后 vba 尝试再次取消隐藏它,它会翻倒。将它放在 if 语句中将解决该问题。否则你可以使用'我想'On error resume next'
  • 取消隐藏未隐藏的工作表不会导致错误。
  • 应该讨论Worksheet.Visible Property 的所有选项。 XlSheetVisibility 常量包含 xlSheetVisible(True 或 -1)、xlSheetHidden(False 或 0)和 xlSheetVeryHidden(2 非 True 或 False) .后者不仅隐藏了工作表,而且还将其从可以“取消隐藏”的工作表列表中删除。如果工作表是 xlSheetVeryHidden,则它不会直接与 False 进行比较。
  • 但是如果宏已经被执行,我必须再次隐藏它?
猜你喜欢
  • 1970-01-01
  • 2017-03-28
  • 1970-01-01
  • 2014-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-10
相关资源
最近更新 更多