2013-06-16 2 views
0

Я новичок в VBA и треснул себе голову, чтобы решить эту проблему. У меня есть строка из трех символов, которую я хочу разбить и поместить значения в массив в excel. Так, например,Разделение струн и печать в разных ячейках, Excel VBA

Sub Splitdata() 

Dim x As Variant 
Dim txt As String 

txt = "Today is sunny" 
x = Split(txt) 

Range("C1:C3").Value = x 

End Sub 

Однако это возвращает только первый символ из строки в ячейках C1-C3 т.е. «Сегодня». Я предполагаю, что требуется цикл, однако я не уверен, как его сделать. Существует ли общий способ решения этой проблемы?

ответ

3

Да, вы могли бы просто решить вашу проблему, изменив расщепление линии в одну эту:

x = Split(txt, " ") 

Edit: и изменить линию, которая проходит привести к листу в этом:

Range("C1:C3").Value = Application.Transpose(x) 
+0

KazJaw, что до сих пор представляет меня с тем же проблемно Слово «сегодня» по-прежнему показывает на С1, C2 и C3. Я бы хотел, чтобы вся строка была разделена, и каждое другое значение попадает в уникальную ячейку. –

+0

см. Редактирование ответа ... –

2

Когда вы назначаете 1-мерный массив в диапазон, по умолчанию он будет идти горизонтально (поэтому C1: E1 будет работать нормально), а не вертикально.

Однако, вы можете использовать Transpose() перевернуть массив так будет заполнить вертикальный диапазон:

Range("C1:C3").Value=application.transpose(split("a b c"))