不知道我错过了什么,但我看到发布的示例似乎不起作用。
我从网络查询导入数据。我将查询设置为在重新查询时清除未使用的单元格。

我使用这些导入的数据来生成可变长度的报告。
但是,如果用户(在我的情况下他们需要这样做)插入行,则 ActiveSheet.UsedRange 将展开。这意味着当执行新查询时,我不能再只执行“Ctrl-End”来查找数据集中的最后一行。
我可以使用 ActiveSheet.UsedRange.Clear 轻松清除任何数据。但是,如果先前的查询生成了 2 或 3 页的报告,则即使数据较少,任何后续查询也将如此长,因为“UsedRange”仍指向最后一行。
显示的示例如下
ActiveSheet.UsedRange
ActiveSheet.UsedRange.Clear
a = ActiveSheet.UsedRange.Rows.Count
Run Code Online (Sandbox Code Playgroud)
不要重置范围。
MS 将 UsedRange 定义为只读属性。
看来需要发生的是“文件保存”以完成操作。
ActiveWorkbook.Save
Run Code Online (Sandbox Code Playgroud)
一篇文章指出,在旧版本的 Excel 中,您还必须关闭工作簿并重新打开它才能完成操作。
我想知道 1. 此行为更改的版本截止日期是多少?2. 是否有其他方法使用 VBA 宏来重置范围?
Cla*_*aus -4
我仔细检查以确保所有最新的补丁和服务包都已安装,而且确实如此。
我运行的是 Windows 10 和 Excel 2016 版本 16.0.6568.2034
我发现范围只会重置
ActiveSheet.UsedRange.Clear
Run Code Online (Sandbox Code Playgroud)
最重要的是
ActiveWorkbook.Save
Run Code Online (Sandbox Code Playgroud)
如果没有保存命令,范围不会重置