gpt4 book ai didi

excel - vba excel连接查询表删除

转载 作者:行者123 更新时间:2023-12-02 12:16:41 32 4
gpt4 key购买 nike

在更大的 Excel 应用程序中,(25 个工作表、50 个命令按钮、5000 行代码、18 个用户表单...大小 12 MB)...我们从服务器将表作为 txt 文件加载,并将这些 txt_files 重新转换为 Excel数据与标准程序。通过宏,我们在下载后删除所有查询表和连接。

一切都运行得完美且快速,但主表现在变得越来越慢。即使打开工作簿也需要越来越多的时间,而大小却保持不变。

不知怎的,我有一种感觉,来自 txt_files 的数据传输的剩余部分没有被删除:

#
Dim ws As Worksheet   
Dim qt As QueryTable
For Each ws In ThisWorkbook.Worksheets
For Each qt In ws.QueryTables
qt.Delete
Next qt
Next ws

If ActiveWorkbook.Connections.Count > 0 Then
For i = 1 To ActiveWorkbook.Connections.Count
ActiveWorkbook.Connections.Item(1).Delete
Next i
EndIf
#

工作簿中没有公式。即使选择 main_sheet + 清除的所有单元格,速度仍然减慢......我想在该命令之后所有单元格都是空的......

在其他 24 个工作表中,没有 speed_problems(甚至过滤列表 850.000 x 33)

知道如何检查 main_sheet 中工作簿速度减慢的原因吗?是否有比删除查询表和连接更强大的“清理”命令?是否有任何方法可以记录 excel 正在执行的操作,同时它不返回命令?

最佳答案

这可能根本不相关,抱歉,但我发现对我来说问题不是连接数,而是每个连接中参数的数量

我发现“罪魁祸首”是查询表本身中遗留的过时/过多的参数对象。我的一些查询大约有 15 个参数,而 SQL 仅需要一个!

据我所知,Excel 没有一个接口(interface),可以在针对 QueryTable 创建参数后删除参数。当您直接在 Excel 中手动调整 SQL 代码,并使用“?”将其与新参数或额外参数一起保存时,可能会发生这种情况。每个参数的字符。当您最终确定一个参数时,所有其他参数仍然被抛在后面。我找不到清除/删除它们的方法。

如果你...

go to Excel -> File Open your workbook -> Stop all macros (if any) -> Click Data -> Queries & Connections to open up all your Queries, etc -> Double-click a Query or Connection and check the Definitions tab and click Parameters..., you may see a huge list of parameters that do the same thing as the first parameter.

这会使 Excel 速度呈指数级下降,因为对于 Excel 刷新工作表/表的每次查询调用,它都会再次运行该查询,并重复“n”次。

由于 Excel 没有适当的界面来管理参数,因此我不得不使用此代码将它们全部删除,并为每个查询仅创建一个参数。

For Each Cn In ActiveSheet.QueryTables
Cn.Parameters.Delete
Next Cn

我找不到一种方法来仅删除一个或几个参数,例如Cn.Parameter(ndx).Delete。没有这样的方法。

关于excel - vba excel连接查询表删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17210514/

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