计算两个选定单元格的偏移量
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
我要求用户使用两个单元格填充用户窗体。 (假设这些是单元格“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