首页 > 解决方案 > 获取从 A3 到最后填充单元格的范围

问题描述

我有一个电子表格,其中“A”列填充如下:

一个
1 一些标题
2 名称1
3 名称2
4
5 名称3
6 名称4
7
8 名称5

在 VBA 的子例程中,我想将范围“A2:A8”存储在一个变量中,但我正在循环多个工作表,并且我不知道包含先验数据的最后一行。例如,它可能是 A8 或 A56。这是我到目前为止所拥有的:

Sub someSub()
Dim wb As Workbook
Dim i As Integer
Dim srcRange As Range

shCount = wb.Worksheets.Count
For i = 1 To shCount
    Set srcRange = wb.Worksheets(i).Range("A2", wb.Worksheets(i).Range("A3").End(xlDown))
    'Do some amazing stuff~
Next

End Sub

但是,这会引发“1024”错误(我想,我没有写下数字)。即使它有效,我相信“xlDown”只会进入 A3,因为 A4 是一个空单元格。像这样硬编码范围是有效的:Set srcRange = wb.Worksheets(i).Range("A3:A8"),但同样,我事先不知道最大行数。

此外,并且不相关,但我想锁定一个列,以便没有人可以编辑它,除非满足条件(该条件是某个单元格的值为 1)。

谢谢!

标签: excelvba

解决方案


推荐阅读