2015-10-14 4 views
0

Я использую Sub вида:VBA код, используя "Cells (Rows.count) .Row) .END (xlUp)" терпит неудачу после 263 итераций

If Not Intersect(Target, Sheets("Sheet1").Range("A1")) Is Nothing Then (+ code) 

в сочетании с:

Sheets("Sheet2").Range ("A1" & Cells(Rows.Count).Row).End(xlUp).Offset(1, 0).Value = Sheets("Sheet1").Range("A1").Value 

с целью скопировать данные из ячейки (например, A1) на Sheet1, которая часто изменяется, в столбец (например, A :) на Sheet2.

Это работает отлично для первых 263 итераций (всегда 263 независимо от временных интервалов), но затем на 264-м вместо того, чтобы копировать следующее значение в следующую пустую ячейку в столбце, оно непрерывно перезаписывает значение в ячейке А2. Это печально, поскольку мне нужно записать не менее 600 значений.

Я использую Excel 2013 под ОС Windows 10.

+0

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

+0

Не должно быть «Листы (« Лист2 »). Диапазон (« A »и« Ячейки »(Rows.Count) .Row) .'? Я не понимаю, что «1» после «А». –

+0

Я согласен с iDevlop, это должно быть просто «A» – Davesexcel

ответ

0

Должно быть:

Sheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value = Sheets("Sheet1").Range("A1").Value 

Получение Cells(Rows.Count) только один параметр не приведет вас к нижней ячейке столбца А, потому что Cells() будет рассчитывать перед тем, как перейти к следующей строке. После некоторых операций вы возвращаетесь к уже используемой области.

+0

В скорректированном коде, где находится начальная ячейка назначения в левой части оператора присваивания? (В моем примере, A1). –

+0

@ A.Johnson, как я понял ваш OP, вы хотели скопировать из Sheet1/A1 в Sheet2/first empty cell в столбце A. Вышеприведенное делает это. Я, вероятно, неправильно понял вас. –

+0

Извиняюсь, я привел А1 в качестве примера. В фактическом коде несколько копий исходного кода копируются между листами. Значения в P8, Q8, R8 и т. Д. На Sheet1 передаются в различные столбцы на Листе2, самая верхняя ячейка которых C4, D4, E4 и т. Д. –

Смежные вопросы