No, 365 is not a default so you must have accidentally set that but at least you have it right now.
If you were interested in a solution using a permanent formula you could use this which should count the unique values in rows 2:1000 even if any rows in that range get deleted.
Excel Formula:
=SUMPRODUCT((INDEX('Subledger Data'!H:H,2):INDEX('Subledger Data'!H:H,1000)<>"")/COUNTIF(INDEX('Subledger Data'!H:H,2):INDEX('Subledger Data'!H:H,1000),INDEX('Subledger Data'!H:H,2):INDEX('Subledger Data'!H:H,1000)&""))
However, if you do want to go with a vba solution you could try something like this. My code uses the last row used in column H of 'Subledger Data'. I'm not sure if that was your intention. If not you can modify the code for a different calculation of 'Lastrow'
VBA Code:
Sub Test2()
Dim d As Object
Dim a As Variant
Dim i As Long, Lastrow As Long, MyCount As Long
Set d = CreateObject("Scripting.Dictionary")
With Sheets("Subledger Data")
Lastrow = .Range("H" & Rows.Count).End(xlUp).Row
a = .Range("H2", .Range("H" & Lastrow)).Value
End With
For i = 1 To UBound(a)
If Len(a(i, 1)) > 0 Then d(a(i, 1)) = 1
Next i
MyCount = d.Count
MsgBox MyCount
End Sub