Я хочу написать код в VBA с разбить массивы в ячейке на несколько строк

361
user850468

Я пытаюсь разделить данные из одной ячейки на несколько строк, как показано ниже.

[Верхняя часть до, а нижняя после

Я использую приведенный ниже код:

Sub TransposeRange()  Dim rng As Range Dim InputRng As Range, OutRng As Range xTitleId = "Splitcell" Set InputRng = Application.Selection.Range("A1") Set InputRng = Application.InputBox("Range(single cell) :", xTitleId, InputRng.Address, Type:=8) Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8) Arr = VBA.Split(InputRng.Range("A1").Value, Chr(9)) OutRng.Resize(UBound(Arr) - LBound(Arr) + 1).Value = Application.Transpose(Arr) End Sub 
0
Какой у Вас вопрос? DavidPostill 6 лет назад 3
Если вы попытались вставить изображение, мы не сможем его увидеть. Какая у вас актуальная проблема, что именно не работает? Что код не может сделать? Mokubai 6 лет назад 0

1 ответ на вопрос

1
Gary's Student

Убедитесь, что ваша ячейка ввода имеет горизонтальные вкладки. Ваш код:

Sub TransposeRange() Dim rng As Range Dim InputRng As Range, OutRng As Range  xTitleId = "Splitcell" Set InputRng = Application.Selection.Range("A1") Set InputRng = Application.InputBox("Range(single cell) :", xTitleId, InputRng.Address, Type:=8) Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)  Arr = VBA.Split(InputRng.Range("A1").Value, Chr(9)) OutRng.Resize(UBound(Arr) - LBound(Arr) + 1).Value = Application.Transpose(Arr) End Sub 

Типичный результат:

Вы правы в том, что chr (9) является вкладкой, и разделение не разделяется, когда на входе нет вкладок. Я думаю, что изображение ОП предполагает, что фактический символ, на который нужно разделиться, будет `chr (10)` или `chr (13)` Yorik 6 лет назад 0

Похожие вопросы