Я пытаюсь собрать данные из десятков рабочих таблиц в рабочей книге и собрать их все для добавления в новую рабочую книгу master
.
Эта строка: ReDim varArray2 (1 To UBound(varArray, 2), 1 To UBound(varArray, 1))
продолжает очищать мои сохраненные данные со всех рабочих таблиц, когда я пытаюсь создать универсальный varArray2 для печати всех массивов сразу на новую главную рабочую таблицу.
Что вызывает очистку массива и как я могу это исправить?
Option Explicit
Sub ws_Merge()
Dim k As Long, x As Long, j As Long
Dim varArray() As Variant
Dim varArray2() As Variant
ReDim varArray(1 To 11, 1 To 1)
Dim ws As Worksheet, wb As Workbook
Set wb = ThisWorkbook
For Each ws In Worksheets
With wb.ActiveSheet
For j = 2 To .UsedRange.Rows.Count + 1
If .Cells(j, 1) <> "" Then
x = x + 1
ReDim Preserve varArray(1 To UBound(varArray, 1), 1 To x)
For k = 1 To UBound(varArray, 1)
varArray(k, x) = .Cells(j, k)
Next
End If
Next
End With
Next ws
ReDim varArray2(1 To UBound(varArray, 2), 1 To UBound(varArray, 1))
With ThisWorkbook.Sheets.Add
For j = 1 To UBound(varArray, 2)
For k = 1 To UBound(varArray, 1)
varArray2(j, k) = varArray(k, j)
Next
Next
.Range(.Cells(2, 1), .Cells(UBound(varArray, 2), UBound(varArray, 1))) = varArray2
End With
End Sub