>Range(Cells(2, 1), Cells(5, 1)).name = WorksheetFunction.Text(Cells(1, 1), "")
実際のコードは、エラーになっているということで、
このコードとは違います。
名前定義という観点で、検索すると、
つぎのようなコードが一般的ではないか・・と思います。
Sub 名前定義()
With ThisWorkbook
.Names.Add Name:=Range("A1").Value, RefersTo:=Range("A2:A5")
End With
End Sub
結果は、同じです。
掲示のコードも
Range("A2:A5").Name = Range("A1").Value
こう書けば、可読性は向上します。
今回の名前定義は、ブックレベルで名前リストに登録されます。
仮に、アクテイブシートが"sheet1"だとして、
Sheet2をアクティブにして同じコードを実行すると、
「アプリケーションの定義、または、オブジェクトの定義のエラー」
というメッセージでエラーになります。
エラーメッセージだけでは、原因がよくわからないと思いますが、
「同じ名前」が既に定義されている・・・というエラーです。
つまり、ブックレベルでは、当該ブック内では、一意にする必要があります。
ここで、気をつけなくてはいけないことがあります。
セル範囲をA2:A5にしていますが、同じシートで、2回実行してもエラーにはなりません。
セル範囲を別の範囲を指定しても、同じシートならば、エラーになりません。
最後に実行した時の範囲が有効です。
事前に同一の名前が存在するか確認することをお勧めします。