Как записать коллекцию VBA в лист Excel [дубликаты]

На этот вопрос уже есть ответ здесь:

Скопируйте значения коллекции в 2D-массив в VBA. 1 ответ

У меня есть существующий код, который я изменяю. Этот код создает коллекцию строк из существующих таблиц на листе. Он создает большую двумерную коллекцию с отдельной информацией в каждом столбце. Существует отдельный модуль класса, который объявляет тип данных для каждого столбца.

Код записывает двумерную коллекцию на новый лист, последовательно просматривая каждый элемент. Я никогда не использовал коллекцию раньше, и хотел бы записать коллекцию на лист в один проход. Текущий код занимает довольно много времени, когда в таблице много записей.

Есть ли способ преобразовать всю коллекцию в 2-D массив, или чтобы я мог записать 2-D массив за один раз? Или есть способ записать всю коллекцию на лист, точно так же, как с помощью двумерного массива? Я пытался найти это и до сих пор безуспешно. Любые общие моменты будут оценены!

Вот пример кода с комментариями, выделенными жирным шрифтом, чтобы проиллюстрировать, как используется коллекция.

Определите модуль класса, названный TableEntry

Public Item1 As String
Public Item2 As String
Public Item3 As String
Public Item4 As Integer
Public Item5 As Integer

Основная процедура - создание коллекции, заполнение коллекции, запись коллекции на лист

Sub MainRoutine()

Dim table As Collection
Set table = New Collection

Call FillCollection(File As String, ByRef table As Collection)

Call WriteCollectionToSheet(ByRef table As Collection)

Подпрограмма 1 - Заполните коллекцию

Dim wb As Workbook
Set wb = Workbooks.Open(File)

Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets

Dim R As Range
Set R = ws.Range("A2")

  Dim e As TableEntry
  For i = 1 To 20

    Set e = New TableEntry

    e.Item1 = R.Offset(i + 1, 0).Offset(0, 0)
    e.Item2 = R.Offset(i + 1, 0).Offset(0, 1)
    e.Item3 = R.Offset(i + 1, 0).Offset(0, 2)
    e.Item4 = R.Offset(i + 1, 0).Offset(0, 3)
    e.Item5 = R.Offset(i + 1, 0).Offset(0, 4)

    table.Add e

  Next i

Next ws

Подпрограмма 2 - запись коллекции на лист

Ответы на вопрос(2)

Ваш ответ на вопрос