gpt4 book ai didi

excel - 为什么 "Range(...).End(xlDown).Row"返回 1048576?

转载 作者:行者123 更新时间:2023-12-04 21:23:48 25 4
gpt4 key购买 nike

我想在 VBA 的 for 循环中复制一些值。因此,我通过以下方式计算限制:

For iCounter = 1 To (Range(...).End(xlDown).Row - Range(...).Row  + 1)

可悲 Range(...).End(xlDown).Row返回 1048576 .当我调试时,突然值变为正确的值。相同的代码在 VBA 代码的其他一些位置也能很好地工作。

最佳答案

要记住的主要事情是 End方法在 VBA 中重现了使用 Ctrl+箭头键的功能。这些旨在在值 block 之间导航。

从 A1 开始:

enter image description here

点击Ctrl+Down :

enter image description here

这说明了当您使用 Ctrl+Down 时会发生什么。在由多个单元格组成的 block 的开头或结尾 - 您转到该 block 的末尾。当您说有时代码运行良好时,您隐含地指的是这种情况。

现在——点击Ctrl+Down再次:

enter image description here

你跳到下一个街区。现在,再做一次:

enter image description here

该 block 的底部。最后,再次:

enter image description here

嗯 - 没有下一个街区可以去 - 所以它一直向下。这对应于让您感到奇怪的情况。它让你在这里:

enter image description here

但是——现在发生了一些很酷的事情:按 Ctrl + Up -- Excel 搜索下一个 block :

enter image description here

这是 A 列中包含数据的最后一个单元格。

出于这个原因——您在 Excel VBA 中经常看到以下代码:

Cells(Rows.Count,1).End(xlUp)

获取列中最后使用的单元格(在本例中为 1)或列中的第一个单元格(如果整个列为空白)。

关于excel - 为什么 "Range(...).End(xlDown).Row"返回 1048576?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32192372/

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