gpt4 book ai didi

vba - 如何从范围变量中获取表的名称?

转载 作者:行者123 更新时间:2023-12-04 21:34:51 27 4
gpt4 key购买 nike

我调暗了变量:

Dim mainTableRange As Range

然后给它一个值:
Set mainTableRange = Range("tLedgerData") ' tLedgerData is an Excel table.

现在我试图从变量中获取表的名称(即“tLedgerData”)以引用该表中的列,即使表名发生更改也是如此。

我试过了
mainTableRange.Name


mainTableRange.Name.Name

(参见 how do you get a range to return its name。)两者都引发了运行时错误“1004”:应用程序定义或对象定义错误。
mainTableRange.Select选择了除标题和总行之外的所有表数据。

最佳答案

我认为您在这里遇到了 X-Y 问题:当解决问题 Y 时解决问题 X。

[...] to reference columns in that table even if the table name changes



有表/ ListObject单独在自己的专用工作表上,并给工作表一个 CodeName .这样你就可以这样做:
Dim tbl As ListObject
Set tbl = LedgerDataSheet.ListObjects(1)

现在您拥有 ListObject 的全能力量API 做任何你想做的事。例如,检索列名:
Dim i As Long
For i = 1 To tbl.ListColumns.Count
Debug.Print tbl.ListColumns(i).Name
Next

换句话说,您不需要关心表的名称。你想要的是使用它的 ListObject .而且由于您永远不需要按名称引用它,表的名称完全无关紧要,用户可以随心所欲地更改它,您的代码甚至不会注意到。

关于vba - 如何从范围变量中获取表的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41250261/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com