Не следует использовать «имя» в качестве имени переменной, поскольку оно конфликтует со свойством Excel.Вместо этого попробуйте sName или sNames, где s - для строки.
Для массива вам необходимо задать ему размер, прежде чем можно будет присвоить значение каждому элементу.
Dim sNames(4) As String '// Or Dim sNames(1 To 4) As String
sName(1) = "John"
...
sName(4) = "Sam"
или, если выне знаю общее количество элементов (имен) для начала:
Dim sNames() As String
Dim iTotalNames As Integer
iTotalNames = '// Some code here to determine how many names you will have
ReDim sNames(iTotalNames) '// You can also use ReDim Preserve if you have existing elements
sName(1) = "John"
...
sName(4) = "Sam"
Так что я подозреваю, что вам понадобится что-то вроде:
Dim sNames() As String
Dim iTotalNames As Integer
'// Your code ....
iTotalNames = iTotalNames + 1
ReDim Preserve sNames(iTotalNames)
sNames(iTotalNames) = Trim(Left(temp2, Len(temp2) - 3))
'// Rest of your code ...
Также в VBA все измеренияпеременные должны быть в верхней части модуля.