чтобы иметь переменную String
в формате {"Head1", "Head2", "Head3"; 1,2,3; 4,5,6; 7,8,9}, вы можете сделать следующее
Dim sValue As String, r As Range
For Each r In ThisWorkbook.Names("MyRange").RefersToRange.Rows
sValue = sValue & Join(Application.Transpose(Application.Transpose(r.Value)), ",") & ";"
Next
sValue = "{" & Left(sValue, Len(sValue) - 1) & "}"
, в то время как хранить именованный диапазон в массиве гораздо проще (и я бы сказал, прост в использовании):
Dim sValue As Variant
sValue = ThisWorkbook.Names("MyRange").RefersToRange.Value