0

我有两个动态范围,我将它们称为 rng1 和 rng2。我有一个通过 rng1 的 for each/next 循环(例如:A2、A3、A4、A5 等...)我还需要从 rng2 获取相同的行值(例如:T2、T3、T4、T5 等),但范围并不总是相同,因此标准偏移量不起作用(据我所知)。

有任何想法吗?

我如何设置范围(不包括标题并找到最后一行)

lastrowTN = ws.Cells(65536, phcell.Column).End(xlUp).Row
Set rngtocopyTN = ws.Range(phcell.Offset(1, 0).Address, Cells(lastrowTN, phcell.Column))
4

1 回答 1

2

没有上下文很难说,但我认为 Intersect 方法可以完成您正在寻找的内容。无论两个范围有多近或多远,它都会找到一个交叉点。所以使用你的例子:

[编辑]:我意识到您也可以使用 Cells 方法(代码也已更新以显示这一点)

Sub tgr()

    Dim rng1 As Range
    Dim rng2 As Range
    Dim LoopCell As Range

    Set rng1 = Range("A2:A5")
    Set rng2 = Range("T2:T5")

    For Each LoopCell In rng1.Cells
        MsgBox Intersect(LoopCell.EntireRow, rng2.EntireColumn).Address
        MsgBox Cells(LoopCell.Row, rng2.Column).Address
    Next LoopCell

End Sub

请注意, rng1 和 rng2 可以在任何列中,并且仍然可以找到它们(当然假设它们都在同一张纸上)。

于 2013-08-13T18:22:30.033 回答