【问题标题】:dynamically renaming excel table per sheet and forwarding the dynamic name to other modules & macros动态重命名每个工作表的excel表并将动态名称转发给其他模块和宏
【发布时间】:2020-07-08 20:31:40
【问题描述】:

以下设置

1 个包含原始数据的工作表 每周 1 个工作表(例如第 31 周、第 32 周……)

原始数据通过用户操作复制到当前工作表。然而,由于表名已经存在于另一周,表名“tableweek”工作表的下一个副本将其表重命名为“tableweek2”、“tableweek3”等,因为这是不可预测的,我更愿意将表命名为工作表的变量,以便我可以在更多宏和数据透视表中使用表名。

但是,对于所有关于动态重命名表名的主题,我无法弄清楚如何正确设置它并将其交给其他宏(在其他模块中)

我发现的最好的是

Sub RenameTable()
With ActiveSheet
    .ListObjects(1).Name = "MyTableName"
End With

结束子

但是,当我将它与动态名称(例如单元格中的公式)结合起来时,这只是手动操作,我无法让它工作。以及如何将其移交给所有其他宏。

感谢任何帮助或指点。

【问题讨论】:

  • 为什么要在运行时重命名这些对象?我们在这里谈论多少表/工作表?您能否提供一些背景信息,例如,您拥有什么,您需要拥有什么,以及您为什么要这样做?
  • 如果需要创建一周的不同版本,每个文档(每周一个)约 54 个表格可能会更多。表名稍后在自动创建的数据透视表中使用

标签: excel vba excel-formula dynamic-tables


【解决方案1】:

似乎我离解决方案并不远:

Sub RenameTable()
    Dim tblName As String
    tblName = Range("D8").Text

    With ActiveSheet
        .ListObjects(1).Name = tblName
    End With
End Sub

现在我只需要交出那个“tblName”就可以了。
分享它以防其他人喜欢该“解决方案”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-25
    • 2019-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多