gpt4 book ai didi

vba - 如何在 VBA 中引用和刷新 Excel 2016 中的查询表

转载 作者:行者123 更新时间:2023-12-02 09:02:28 24 4
gpt4 key购买 nike

我正在尝试刷新单元格更改的查询,但我不知道如何引用该查询。

我的代码:Sheets("Roster Query").QueryTables(0).Refresh

只是错误:

Run-time error '1004':

Application-defined or object-defined error

我有一个名为“Roster Filter”的工作表,其中包含我想要刷新的查询表。我如何获取该 QueryTable 并刷新它?

编辑:也尝试过:

For Each qt In Sheets("Roster Query").QueryTables
qt.Refresh
Next

这不会出错,但查询不会刷新。

最佳答案

查询表是旧版 Excel 的遗留物,在表出现之前。甚至不知道如何在 Excel 2007+ 中创建一个。

如果您通过“数据/获取外部数据”功能区菜单添加 QT,则您添加的实际上是一个 ListObject

我在 Sheet1 上对此进行了测试,添加了一个简单的查询 - Excel 为我创建了 ListObject:

Excel creates a ListObject

立即 Pane 中,我得到以下结果:

?Sheet1.QueryTables.Count
0
?Sheet1.ListObjects.Count
1

我可以重现您完全相同的错误:

Sheet1.QueryTables(0).Refresh 'runtime error 1004

这个错误只是令人震惊的误导,仅此而已 - 它实际上应该是一个索引越界

解决方案是刷新 ListObject:

Sheet1.ListObjects(1).Refresh 'works

您也可以通过 ListObject 访问底层 QueryTable 对象:

?Sheet1.ListObjects(1).QueryTable.CommandText 'gives you the query

关于vba - 如何在 VBA 中引用和刷新 Excel 2016 中的查询表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39027286/

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