/ / Перетворення списку Excel в формат Array - масиви, excel, vba

Перетворення списку Excel в формат Array - масиви, excel, vba

У мене є кілька досить довгих списків валют у Excelщо мені потрібно конвертувати в формат масиву, для використання в іншій програмі. Чи існує вбудована формула, яка повертає рядкові значення списку в масив рядків?

Наприклад:

a
b
c
d
e

Повернеться як "a", "b", "c", "d", "e" (навіть якщо це просто у рядку формули, щоб я міг скопіювати та вставити!)

Я б вважав за краще не використовувати VBA, якщо це можливо, просто через обмеження часу, однак, якщо це працює відносно легко, будь-які пропозиції з цього було б дуже корисно теж.

Велике спасибі заздалегідь

Відповіді:

2 для відповіді № 1

Немає вбудованого безпосередньо AFAIK.

Додати модуль VBA, вставити:

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

Потім у аркуші можна: =ToArrStr(A1:A5)

(Припускає, що ваша передача> 1 клітина вертикально)


2 для відповіді № 2

Як я бачив цю обробку в чисто формулі Excel накопичується рядок за рядком:

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

1 для відповіді № 3

FWIW, Якщо у вас є останнє оновлення до Excel або використовуєте онлайн-додаток, є вбудована формула. Це TEXTJOIN (). Тому:

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

введіть опис зображення тут


0 для відповіді № 4

Інший спосіб перетворення списку в масив. Сподіваюся, що це допоможе.

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

Тоді на аркуші можна: = ToArrStr1 (A1: A5)