我有一个宏,我需要选择范围 R2:last row in sheet
. 但是,在 R
列中,工作表中的最后一行可能为空 . 目前我正在使用它
Dim t As Range
Set t = Range("R2", Range("R1000").End(xlUp))
For Each Cell In t
If IsEmpty(Cell) Then
Cell.Activate
ActiveCell.Value = "To Be Picked Up"
End If
Next
但是,如果最后一行在 R
列中有空白,则会被忽略 . 我希望使用 A
列来拉取范围,因为最后一行数据总是有 A
列 . 所以,像,
Dim t As Range
Set t = Range("R2", Range("A1000").End(xlUp).ActiveCell.Offset(0, 17))
For Each Cell In t
If IsEmpty(Cell) Then
Cell.Activate
ActiveCell.Value = "To Be Picked Up"
End If
Next
这看起来很简单,但我确定我错过了一些愚蠢的东西 . 任何帮助或替代方法都会有所帮助,谢谢 .
1 回答
这应该在一行中做到这一点:
但是具体回答你的问题
Range()
方法将接受一个字符串作为参数来获取范围 . 所以我们可以按照我们想要的方式构建这个字符串:"A" & Rows.Count
将返回A65536
或A1048576
,具体取决于工作表的类型 .如您所知,
Range("A1048576").End(xlUp)
将检索该区域中的最后一个单元格,或者指定方向上下一个区域中的第一个单元格 .Range("A1048576").End(xlUp).Row
将返回该单元格的行号(为了参数,让's say it' s A1000),因此返回值为1000
."R2:R" & Range("A" & Rows.Count).End(xlUp).Row
因此生成字符串R2:R1000
.所以最后,
Range("R2:R" & Range("A" & Rows.Count).End(xlUp).Row)
与Range("R2:R1000")
相同