Eu quero escrever um código em vba com dividir as matrizes em uma célula para várias linhas [fechado]


0

Estou tentando dividir dados de uma única célula para várias linhas, conforme mostrado abaixo.

[Top one is before and the bottom one is after

Eu estou usando o código abaixo mencionado:

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

3
Qual é a sua pergunta?
DavidPostill

Se você tentou inserir uma imagem, não podemos vê-la. Qual é o seu problema real, o que exatamente não está funcionando? O que o código não faz?
Mokubai

Respostas:


1

Certifique-se de que sua célula de entrada tenha guias horizontais. Seu código:

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

Resultado típico:

enter image description here


Você está certo nisso chr(9) é uma guia, e a divisão não é dividida quando não há guias na entrada. Eu acho que a imagem do OP sugere que o caractere real para dividir seria chr(10) ou chr(13)
Yorik
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.