/ / Converter lista do Excel em formato Array - arrays, excel, vba

Converter lista do Excel em formato Array - arrays, excel, vba

Eu tenho algumas listas de moeda bastante longas no excelque eu preciso converter em um formato de matriz, para uso em um programa diferente. Existe alguma fórmula interna que retornará os valores de string de uma lista, em uma matriz de string?

Por exemplo, o seguinte:

a
b
c
d
e

Retornará como "a", "b", "c", "d", "e" (mesmo que seja apenas na barra de fórmulas para que eu possa copiar e colar!)

Eu preferiria não usar o VBA, se possível, simplesmente devido a restrições de tempo, no entanto, se isso funcionar de forma relativamente fácil, qualquer sugestão seria realmente útil também.

Muito obrigado antecipadamente

Respostas:

2 para resposta № 1

Nada embutido diretamente AFAIK.

Adicione um módulo VBA, cole:

Public Function ToArrStr(r As Range) As String
ToArrStr = """" & Join(Application.Transpose(r), """,""") & """"
End Function

Então na folha você pode: =ToArrStr(A1:A5)

(Assume sua passagem> 1 célula verticalmente)


2 para resposta № 2

A maneira como vi isso sendo tratado na fórmula do Excel é acumular linha por linha:

A    B
---  -----------------
a    =""""&A1&""""
b    =B1&","""&A2&""""
c    =B2&","""&A3&""""
d    =B3&","""&A4&""""

1 para resposta № 3

FWIW, Se você tiver a atualização mais recente para o Excel ou estiver usando o aplicativo on-line, haverá uma fórmula incorporada. É TEXTJOIN (). Assim:

="""" & TEXTJOIN(""",""",TRUE,A1:A5) & """"

insira a descrição da imagem aqui


0 para a resposta № 4

Outra maneira de converter a lista em array. Espero que ajude.

Public Function ToArrStr1(r As Range) As String
Dim out As String
For i = 1 To r.Cells.Count
If out = "" Then out = """" & r.Cells(i) & """" Else out = out & ",""" & r.Cells(i) & """"
Next i
ToArrStr1 = out
End Function

Em seguida, na planilha você pode: = ToArrStr1 (A1: A5)