Это SpinButton1.Value
из-за отсутствия лучшего слова, «скрытого» в другом месте. Он не знает, чтобы сбросить до 1, когда D12
пусто - вы должны дать ему знать, чтобы сбросить:
Private Sub SpinButton1_Change()
If Range("D12").Value = "" Then SpinButton1.Value = 1
Range("D12").Value = SpinButton1.Value
SpinButton1.Max = 100
SpinButton1.Min = 1
SpinButton1.SmallChange = 1
End Sub