首页 > 解决方案 > 当范围为 1 时,循环变量范围的代码失败

问题描述

我的一些代码有问题。我基本上写了一行,允许我定义一个大小可变的范围。这是为了让我的模型为范围内的每个元素创建工作表。当定义的范围大于 1 时,此代码可以正常工作,但是当我应该定义 1 或 0 的范围时,我的代码告诉我在此范围内有大量元素(例如 100,000)。有谁知道为什么?这是代码:

Dim deposits As Range
Set deposits = Worksheets("DATA ENTRY").Range("C3", Worksheets("DATA ENTRY").Range("C3").End(xlDown))

标签: vbaexcel

解决方案


问题是xlDown如果 C4 或以下没有数据,它将移至 Excel 的最后一行。

因此使用xlUp从最后一行开始Rows.Count来确定最后使用的单元格。这比xlDown方法更可靠。

Dim deposits As Range
Set deposits = Worksheets("DATA ENTRY").Range("C3", Worksheets("DATA ENTRY").Cells(Rows.Count, "C").End(xlUp))

推荐阅读