Я относительно новичок в программировании VBA, поэтому прошу ответить на вопрос о noobie. У меня очень простой код, который в основном помещает около 200 000 записей в массив. Затем я хочу вставить эти записи в колонку А в Sheet1. Однако я продолжаю получать «Ошибка времени выполнения 13 Тип несоответствия». Ниже приведен код.Вставка массива в столбец Excel приводит к ошибке времени выполнения 13
Sub array_testing()
Dim i As Long
Dim MyArray() As String
i = 2
Sheets("Customer Data").Activate
Do Until IsEmpty(Cells(i, 1))
ReDim Preserve MyArray(i)
MyArray(i) = Cells(i, 1).Value
i = i + 1
Loop
Sheets("Sheet1").Activate
Sheets("Sheet1").Range("A1").Resize(UBound(MyArray, 1), 1).Value = Application.Transpose(MyArray)
End Sub
Вы можете просто указать myArray() как вариант. и значение myArray = range ("a1: a200000"). Вам нужно будет указать диапазон («a1»). value = transpose (... это сделать вертикальный массив горизонтальным? –
Я заполнил массив значениями из один столбец и хочу вставить их в другой столбец. Поэтому я полагаю, что данные массива должны быть вертикальными, и я хочу вставить их по вертикали. Теперь, когда вы упомянули об этом, я сомневаюсь, что. Transpose - это то, что мне нужно, но я понятия не имею, как сделайте это. –
'range (" b1 "). value = myarray', тогда сохраните свой цикл как есть, если вы зацикливаете на 1-ю пустую ячейку, возможно, лучше всего найти последнюю строку, а затем используйте' range ("b1 : b "& lastrow) .value = (" a1: a "& lastrow) .value' –