自动计算2个选定像元的偏移VBA

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

有人知道我该怎么做吗?

举个例子:我正在创建一个宏,该宏要求用户用2个单元格填充UserForm。 (假设这些是单元格“ D1”和“ F2”)。我想在代码的其他部分中(在搜索关键字之后)在这两个单元格之间使用此偏移量。请记住,用户可以在工作表上选择任意两个单元格。

我无法找到如何完成此目标的方法。任何帮助表示赞赏。

vba cell offset
1个回答
0
投票

请尝试使用此功能。

它将返回行和列之间的差异。如果需要绝对值,只需取消注释代码行即可使差值变为正数:

Private Function cellsOffsetRC(Cell1 As Range, Cell2 As Range) As Variant
   Dim calOff As Long, rowsOff As Long, arrOff(1) As Variant

   arrOff(0) = Cell2.Row - Cell1.Row
    'If arrOff(0) < 0 Then arrOff(0) = arrOff(0) * (-1)
   arrOff(1) = Cell2.Column - Cell1.Column
    'If arrOff(1) < 0 Then arrOff(1) = arrOff(1) * (-1)

    cellsOffsetRC = arrOff
End Function

可以用像这样的测试子检查:

Sub testCellsOffsetRC()
  Dim arrOff As Variant
  arrOff = cellsOffsetRC(Range("D1"), Range("F2"))
  Debug.Print "Rows Offset: " & arrOff(0),"Columns Offset: " &  arrOff(1)
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.