Tengo un código VBA para calcular la distancia entre dos celdas con los mismos valores en una tabla. Solo necesito la diferencia de fila entre las celdas que pueden estar en diferentes columnas como se ve en la imagen. Solo necesito distancia en el eje "Y", no en el eje "X". Este código tiene la funcionalidad y el diseño que necesito, pero también calcula la distancia en el eje "X".
En la imagen de ejemplo a continuación, en la columna B, B5: Central coincide con el más cercano (abajo) B12: Central , y la distancia (el número de filas entre ellos) es 6. Y en E1: 250 coincide con el G16 más cercano : 250 , y la distancia es 13.
El código que tengo es este:
Option Explicit
Sub main()
Dim cell As Range, f As Range
Dim rowOffset As Long
With Worksheets("gaps").Range("A2:F10") '<--| change this to your actual range of interest
For Each cell In .SpecialCells(xlCellTypeConstants, xlNumbers)
rowOffset = 1
Set f = .Find(what:=cell, after:=cell, LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlPrevious)
If Not f Is Nothing And f.Row <= cell.Row Then rowOffset = cell.Row - f.Row + 1
cell.offset(, .Columns.Count + 1) = rowOffset '<--| the "+1" offset results range one column away from values range: adjust it as per your needs
Next cell
End With
End Sub
fuente
Aquí hay una solución que encontré para este problema que aborda los problemas que tenía en los códigos ofrecidos.
fuente