Si le parece bien un borde negro fino, entonces el formato condicional funcionará. Si realmente quiere un grueso borde negro, necesitará un código de evento VBA, ya que no puede modificar el grosor de un borde en la propiedad de borde del formato condicional.
Para introducir esta macro activada por eventos, haga clic con el botón derecho del ratón en la pestaña de la hoja. Seleccione "Ver código" en el menú desplegable del botón derecho. A continuación, pegue el código siguiente en la ventana que se abre.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim dataRange As Range
Dim v As Variant, I As Long
Set dataRange = Range(Cells(2, 2), Cells(100, 10)) 'change as needed
If Not Intersect(Target, dataRange) Is Nothing Then
With dataRange
v = .Columns(9)
For I = 1 To UBound(v) - 1
If v(I, 1) <> v(I + 1, 1) Then
With .Rows(I).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Color = vbBlack
.Weight = xlThick
End With
Else
.Rows(I).Borders(xlEdgeBottom).LineStyle = xlNone 'or whatever you want for the default border
End If
Next I
End With
End If
End Sub
Edición: para tener una macro autónoma y no activada por eventos
entrar en un módulo regular
puede llamarla desde otra macro, o activarla con un botón, o iniciarla manualmente
Option Explicit
Sub LineIT()
Dim WS As Worksheet
Dim dataRange As Range
Dim v As Variant, I As Long
Set WS = ThisWorkbook.Worksheets("Sheet4") 'or whatever workbook and worksheet the table you which to process is located
With WS
Set dataRange = Range(.Cells(2, 1), Cells(.Rows.Count, 10).End(xlUp)) 'change as needed
With dataRange
v = .Columns(10)
For I = 1 To UBound(v) - 1
If v(I, 1) <> v(I + 1, 1) Then
With .Rows(I).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Color = vbBlack
.Weight = xlThick
End With
Else
.Rows(I).Borders(xlEdgeBottom).LineStyle = xlNone 'or whatever you want for the default border
End If
Next I
End With
End With
End Sub