【问题标题】:Click to toggle sheet tab单击以切换工作表选项卡
【发布时间】:2016-01-27 01:07:40
【问题描述】:

我正在尝试使用 VBA 创建与使用 3 张工作表打开的 Excel 电子表格并希望在工作表之间切换时所做的相同操作,就像单击工作簿底部的工作表选项卡时一样(即通过单击工作表选项卡在 Sheet1、Sheet2、Sheet3 之间切换)

我已经尝试了一些东西:

book.Worksheets(1).Activate = True

book.Worksheets(1).Activate

sheet.Visible = True

但似乎没有任何效果。我不确定激活是我想要的。我认为这只会使工作表处于活动状态,但不可见。可见似乎什么都不做。这如何实现?

【问题讨论】:

  • book.Worksheets(1).Select ?
  • 别管我的回答,星期五我的大脑很慢。 .Activate 是您要查找的代码。您的代码一定有其他问题。阅读stackoverflow.com/questions/15919455/…
  • 如果在同一个工作簿中,请尝试ThisWorkbook.Sheets(1).Activate,否则,请确保book 正确并使用book.Sheets(1).Activate
  • 另外,你想在用户窗体中使用它吗?您想要 1 个按钮,单击时会“循环”到下一张纸,然后在最后重新开始,还是想要 3 个按钮,每张纸一个?
  • 嘿迈克尔。谢谢你的问题。基本上,当我的脚本结束时,它会保存工作簿。当我打开工作簿时,它总是打开并显示它创建的最后一页。我希望电子表格打开时显示第一张工作表。这就是我真正想要完成的。

标签: vba excel toggle


【解决方案1】:
book.Worksheets(1).Activate

旨在执行您想要的操作“单击选项卡”

你也可以试试

book.Worksheets(1).Select

可用于选择多个选项卡(请参阅查看What is the difference between Sheets.Select and Sheets.Activate?)

我猜您的工作簿参考或代码中的其他内容不正确。如果您创建一个新的 excel 文件并尝试Sheets("Sheet2").Activate,它将选择该选项卡。

【讨论】:

    【解决方案2】:

    感谢您的反馈。我一直在尝试在 python 中使用 com 对象。它们通常可以很好地相互操作,但这是一件似乎行不通的事情。我已经尝试了您的所有建议,但没有任何结果。

    我设法通过使用以下方法移动床单来找到解决方法:

    sheet.Move(Before=book.Worksheets(1))
    

    由于某种原因,当工作表被移动时,它也会激活它,这是我想要的最终结果。它适用于我正在编写脚本的场景,但可能不适用于尝试做类似事情的其他人。

    【讨论】:

      猜你喜欢
      • 2014-08-31
      • 1970-01-01
      • 1970-01-01
      • 2017-09-29
      • 2013-05-12
      • 2018-07-31
      • 2021-11-28
      • 1970-01-01
      • 2016-03-13
      相关资源
      最近更新 更多