计算两个选定单元格的偏移量

Calculate the Offset of two selected cells

我要求用户使用两个单元格填充用户窗体。 (假设这些是单元格“D1”和“F2”)。我想在代码的其他部分(搜索关键字后)使用这两个单元格之间的偏移量。请记住,用户可以选择 sheet.

上的任意两个单元格

请试试这个功能。

它将return 行和列之间的差异。如果您需要绝对值,只需取消注释使差异为正的代码行:

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)
  Debug.Print Range("D1").Offset(arrOff(0), arrOff(1)).address
End Sub