【问题标题】:How to run code on most recently created sheet?如何在最近创建的工作表上运行代码?
【发布时间】:2021-03-10 19:27:58
【问题描述】:

我们有一个电子表格,其中每周添加两张新工作表,同时隐藏两张。命名约定遵循“we 12.26.20 details”和“EE +12 Hrs we 12.26.20”

我们隐藏两周前的两张工作表,保持上周的两张工作表可见,然后复制仍然可见的两张工作表,以便我们可以保留格式,删除所有数据,然后更改工作表名称以使其重合以本周结束日期为准。
总共将有 4 张纸可见。

我想创建一个执行某些格式设置的宏,但我遇到了工作表名称更改的问题。
我尝试了sName = Sheets(1).Name 等等,但随着我们继续隐藏工作表,数字会增加,并且宏会运行我认为已经硬编码的工作表编号。

如何在具有更高/更新日期的工作表上运行代码?

【问题讨论】:

  • 您可以解析Right 的最多8 个字母Sheet.Name。
  • 如果总是只添加工作表,那么您可以使用Sheets.Count 来获取工作表的总数,然后只使用最新的两个
  • 您的床单总是从旧到新排列吗?
  • @TimWilliams 是的。例如。 “我们 01.04.20 详情”、“我们 01.11.20 详情”、“我们 1.18.20 详情”

标签: excel vba


【解决方案1】:

我已了解您的问题,我的建议是在工作表中添加一些特定的周数时间戳。这样,它将帮助您循环每张纸,并且只有最高 2 周数的纸应该是可见的,其余的将被设置为隐藏。

其次,我认为您正在使用前一周的工作表来复制格式。如果您的文件中可以有一个单独的格式模板工作表,我会更好,这样您每次都可以参考这个,而不是复制、粘贴然后删除。将消除 4-5 个步骤,这将最终有助于提高性能。

如果您可以分享您的资源,那么我可以查看并解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-06
    • 2015-06-10
    • 1970-01-01
    • 1970-01-01
    • 2020-07-18
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    相关资源
    最近更新 更多