首页 > 解决方案 > Excel VBA 范围直到最后一个可用单元格

问题描述

我在使用“范围”实现 VBA 代码时遇到问题:

我正在使用 2 张纸。第一个是“导入”,另一个是“数据”,我使用“导入”中的数据,使用不同的公式来编辑/过滤我的数据。“导入”表中的数据每周更改一次,因此行数(5000-10000 行)。

我将 Range 设置为 10000,以始终覆盖我的数据,但是当行数低于 10000 时,它会放置N/A在单元格上,每次都必须删除。

这是我在“数据”表上使用的(数据中的每一列都从导入中导入其他列):

Range("A2:A10000").Formula = "='Import'!RC"
Range("B2:B10000").Formula = "=VLOOKUP(RC[-1],'Import'!R1C[-1]:R10000C[43],45,FALSE)"`

有什么方法可以让 Range 看到“导入”的每列有多少行,这样我就可以避免所有的 N/A?

标签: excelvbaexcel-formula

解决方案


尝试,

dim lr as long

with worksheets("Import")
    lr = .cells(.rows.count, "A").end(xlup).row
end with

with worksheets("Data")
    .Range(.cells(2, "A"), .cells(lr, "A")).Formular1c1 = "='Import'!RC"
    .Range(.cells(2, "B"), .cells(lr, "B")).Formular1c1 = _
         "=VLOOKUP(RC[-1], 'Import'!C1:C45, 45, FALSE)"
end with

真的有必要把A列的值带过来吗?似乎B列中的公式也很容易,

with worksheets("Data")
    .Range(.cells(2, "B"), .cells(lr, "B")).Formular1c1 = "=RC45"
end with

推荐阅读