如何使用VBA中的偏移函数选择多个非连接单元格作为范围?

问题描述 投票:0回答:1

我有一列数据(P 列)。该数据每 12 个单元格包含名称,并且其间包含其他数据。我只需要选择包含名称的单元格。当报告填满时,整个名称和数据范围都会向下移动,这就是我需要偏移函数的原因。这是我到目前为止所想到的。它选择 2 个单元格的范围以及其间的数据。我希望它只选择 2 个单元格。 P 列中还会有许多其他变量。如果只有 2 个,则 id 仅设置 2 个变量。我需要它来选择(例如)单元格 P2、P14、P26、P38。但这会经常更改为 P 列中的其他行。

Dim nameBank As Range
Dim P As Range

Set P = Cells(Rows.Count, "P").End(xlUp)

Set nameBank = Range(P.Offset(-11), P.Offset(-23))
vba range offset
1个回答
0
投票
Sub Demo()
    Dim i As Long, nameBank As Range, LastCell As Range
    Set LastCell = Cells(Rows.Count, "LastCell").End(xlUp)
    Set nameBank = LastCell.Offset(-11)
    For i = 1 To 11
        If LastCell.Row - 11 - 12 * i > 0 Then _
        Set nameBank = Application.Union(nameBank, LastCell.Offset(-11 - 12 * i))
    Next
    Debug.Print nameBank.Address
    ' You code ...
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.