If the merged cell is always at the last row then it is easy. All you need to do is use the .MergeArea.Count
to check if the last cell is merged.
Is this what you are trying?
Option Explicit
Sub Sample()
Dim ws As Worksheet
Dim Lrow As Long
Set ws = ThisWorkbook.Sheets("Sheet2")
With ws
Lrow = .Range("B" & .Rows.Count).End(xlUp).Row
If .Range("B" & Lrow).MergeArea.Count > 1 Then
Lrow = Lrow - 1
End If
.Range("C15:I15").AutoFill Destination:=.Range("C15:I" & Lrow)
End With
End Sub
And if you want to ignore the blank cell above the merged cell then, you can use this
Option Explicit
Sub Sample()
Dim ws As Worksheet
Dim Lrow As Long
Set ws = ThisWorkbook.Sheets("Sheet2")
With ws
Lrow = .Range("B" & .Rows.Count).End(xlUp).Row
If .Range("B" & Lrow).MergeArea.Count > 1 Then
If Len(Trim(.Range("B" & Lrow - 1))) = 0 Then
Lrow = .Range("B" & Lrow).End(xlUp).Row
Else
Lrow = Lrow - 1
End If
End If
.Range("C15:I15").AutoFill Destination:=.Range("C15:I" & Lrow)
End With
End Sub