Выходной массив строк на новый диапазон

Я пытаюсь захватить строки из определенного диапазона одного листа и вывести массив на другой диапазон листов. К сожалению, полученный код не дает мне никакого результата.

Благодарим вас за помощь заранее.

Dim strFunds As String Dim varItemName As Variant Dim strItemName() As String Dim iRow As Long Dim rngMyRange As Range Sub DataGrab() ActiveWorkbook.Sheets("Returns").Activate Set rngMyRange = Range("A5:A100") varItemName = rngMyRange ReDim strItemName(LBound(varItemName, 1) To UBound(varItemName, 1)) ActiveWorkbook.Sheets("Data").Activate Range("A3:A" & UBound(strItemName) + 1) = WorksheetFunction.Transpose(strItemName) End Sub 

 Sub Main() Dim rngArr rngArr = Sheets("Returns").Range("A5:B100").Value Sheets("Data").Range("A3").Resize(UBound(rngArr) + 1, 2) = rngArr End Sub 

EDIT: Упс не видел меня, как ответ выше. Этот ответ почти то же самое.

Попробуй это.

Сначала измените varItemName на массив:

 Dim varItemName() As Variant 

Затем:

 Sub DataGrab() ActiveWorkbook.Sheets("Returns").Activate Set rngMyRange = Range("A5:A100") varItemName = rngMyRange.Value 'ReDim strItemName(LBound(varItemName, 1) To UBound(varItemName, 1)) ActiveWorkbook.Sheets("Data").Activate Range("A3").Resize(1, UBound(varItemName) + 1) = WorksheetFunction.Transpose(varItemName) End Sub 

Это предполагает, что вы хотите преобразовать ваши столбчатые данные в одну строку. Если нет, сделайте это на последней строке:

 Range("A3").Resize(UBound(varItemName) + 1, 1) = varItemName 

Вы не присваиваете значения strItemName . Вот версия, которая просто хранит все в varItemName .

 ActiveWorkbook.Sheets("Returns").Activate Set rngMyRange = Range("A5:A100") varItemName = rngMyRange.Value ActiveWorkbook.Sheets("Data").Activate Range(Cells(3, 1), Cells(3, UBound(varItemName))) = WorksheetFunction.Transpose(varItemName) 

ОБНОВЛЕНИЕ: Если вам не нужно сохранять varItemName , вы можете использовать эту более короткую версию:

 Set rngMyRange = Range("A5:A100") ActiveWorkbook.Sheets("Data").Activate Range(Cells(3, 1), Cells(3, 100)) = WorksheetFunction.Transpose(rngMyRange) 
Interesting Posts

Макрос работает на каждом компьютере, кроме одного, где он дает «ошибку 1004»,

Вставка XML в рабочий лист Excel

Цикл через часы vba

Вызвать функцию возврата Var из одного листа из другого

Могу ли я подключить функцию к команде print в Excel?

Как добавить несколько диапазонов в excel, чтобы предотвратить дублирование записей

Excel Условное форматирование расширяется с помощью сводных таблиц?

Преобразовать '0000-00-00' в 'флаг' в python

Вставить в доступ – невозможно обновить. База данных или объект доступны только для чтения

Java и POI: создание нового листа Excel без перезаписи

Вычислить количество экземпляров данных в списке

Unix: отобразить строку x в файле (где x – переменная)

Excel удаляет все значения в одном столбце, которые отличаются от другого столбца

Фильтр по цвету ячеек с помощью Excel :: Writer :: XLSX

Как я могу перетащить функцию VLOOKUP вниз для нескольких выходов вместо одного?

Давайте будем гением компьютера.