Si lo que necesitas es que cada vez que se abre el formulario inicie el registro en A (no importando que en la última fila ocupada quedó vacía la celda en B), debes agregar los cambios que comento a continuación.
Dejo imagen de las posibles situaciones. También contemplo si tiene título o empieza en fila 1. Si no es así como lo interpreto entonces x favor también deja alguna imagen o muestra de lo que necesitas para dar por finalizado ya este tema.
En el formulario todas estas instrucciones deben ser colocadas, al margen de que tengas algunas otras en los mismos eventos.
Option Explicit
Dim vez As Byte
Private Sub CommandButton1_Click()
Dim x As Long
If TextBox1 = "" Then Exit Sub
On Error Resume Next
With Hoja2 'ATENCIÓN CON EL NOMBRE DE HOJA
'se evalúa si es el primer registro de la sesión
If vez = 0 Then
'se busca la primer fila libre en A
x = .Cells(Rows.Count, "A").End(xlUp).Row + 1
'si x = 2 puede ser q tenga un título o fila 1 está vacía y puede ocuparse
If x = 2 And .Range("A" & x - 1) = "" Then x = x - 1
'se guarda marca en la variable
.Cells(x, "A") = CDbl(TextBox1)
vez = 1
Else
'se evalua si col B, de la ultima fila ocupada, aún está vacía
x = . Cells(Rows.Count, "A").End(xlUp). Row
If .Cells(x, "B") = "" Then
'se coloca en col B
.Cells(x, "B") = CDbl(TextBox1)
Else
'se coloca en fila sgte, col A
.Cells(x + 1, "A") = CDbl(TextBox1)
End If
End If
End With
On Error GoTo 0
TextBox1 = "": TextBox1.SetFocus
End Sub
Private Sub UserForm_Initialize()
vez = 0 'esto indica que debe comenzar en col A
'otras posibles instrucciones que tengas en este evento
'...............
End Sub
Sdos!