there is nothing fundamentally wrong with the solution you are proposing. However using labels is generally frowned upon, because using them tends to create unmanageable spaghetti code. I would suggest to rather us the Do/Loop syntax, see below.
Dim varPasteValue As Variant
Dim rngCellCheck As Range
Set rngCellCheck = Range("A2")
varPasteValue = rngCellCheck.Value
Do
Set rngCellCheck = rngCellCheck.Offset(0, 1)
If IsEmpty(rngCellCheck) Then
rngCellCheck.Value = varPasteValue
Exit Do
End If
Loop