VBA – вставка только определенных столбцов из массива

после вопроса, который я задал недавно, я создал массив для копирования данных с одного рабочего листа на другой. Моя проблема в том, что массив содержит много столбцов, которые мне не нужны в новом листе.

x = Sheets("Sheet1").Range("A1048576").End(xlUp).Row Set my_range = Sheets("Sheet1").Range("A2:AM" & x) DirArray = my_range Sheets("Sheet2").Select Set Destination = Range("A3") Destination.Resize(UBound(DirArray, 1), UBound(DirArray, 2)).Value = DirArray 

Этот код копирует все данные из массива, но мне нужны только определенные столбцы из массива. Как мне это сделать, чтобы получить только столбцы A: E, AA, L, M: K?

Любая помощь приветствуется. Заранее спасибо.

Ну, если вы собираетесь использовать массивы, возможно, что-то вроде этого может помочь:

 Sub foo() Dim ColumnAarray() As Variant Dim my_Arange As Range LastRow = Sheet1.Cells(Sheet1.Rows.Count, "A").End(xlUp).Row 'Get one column's data Set my_Arange = Sheets("Sheet1").Range("A2:A" & LastRow) ' get specific column ReDim ColumnAarray(LastRow) 'Re size your array to fit data ColumnAarray = my_Arange 'add data to array '' ''Repeat the process to copy more columns '' Set Destination = Sheet2.Range("A3") Destination.Resize(UBound(ColumnAarray, 1), UBound(ColumnAarray, 2)).Value = ColumnAarray 'add column A to Range A3 on Sheet2 End Sub 

Или где вы собираетесь вставлять значения массива, вы можете изменить это, чтобы вставлять только определенные столбцы из исходного диапазона … например:

 Sub foo() Dim ColumnAarray() As Variant Dim my_Arange As Range LastRow = Sheet1.Cells(Sheet1.Rows.Count, "A").End(xlUp).Row Set my_Arange = Sheets("Sheet1").Range("A2:AM" & LastRow) ' get specific range ReDim ColumnAarray(LastRow) 'Re size your array to fit data ColumnAarray = my_Arange 'add data to array For i = LBound(ColumnAarray) To UBound(ColumnAarray) Sheet2.Range("A" & i) = ColumnAarray(i, 1) 'paste first column from original range Sheet2.Range("B" & i) = ColumnAarray(i, 2) 'paste second column from original range into column B in Sheet 2 Next i End Sub 
  • Один словарь данных в VBA
  • Excel 2013 VBA: запись массива в лист «Определенная пользователем или объектная ошибка»
  • значение соответствия excel (get row) в двумерном массиве
  • Чтение 3-мерного массива из Excel (IBM ILOG CPLEX)
  • Каков наилучший способ получить границу массива данных в VBA excel?
  • Как я могу загрузить индекс цвета каждой ячейки диапазона в массив?
  • Заполните массив случайных румов для суммирования в excel vba
  • VBA: заполнить столбец «Время» на основе диапазона ячеек и интервалов
  • Как получить номер элемента при прохождении через массив VBA
  • За цикл, чтобы зацикливать, хотя диапазон n ячеек за раз
  • Можно ли измерить новую переменную на основе значения массива?
  • Давайте будем гением компьютера.