Я работаю над частью шаблона, которая требует, чтобы я копировал и вставлял несколько строк значений с тем же числом столбцов из разных листов и добавлял их вместе (то есть копировать значения в листе 1 , вставить в лист 10, скопировать значение из листа 2, вставить в лист 10, но после последней строки значений, скопированных из листа 1, и так далее). Я обычно используюЛучший способ копирования и вставки значений
Диапазон (выбор, Selection.End (xlDown)). Выберите
Range (Выделение Selection.End (xlToRight)). Выберите
скопировать данные.
Затем я использую сделать, пока оператор, чтобы найти последнюю строку целевого листа (т.е. лист 10) и вставить его туда:
Range("A6").Select Do While ActiveCell.Value <> "" ActiveCell.Offset(1, 0).Select Loop Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False
Но у меня проблема, если один исходных листов имеет только одну строку. Он копирует строку и все пустые строки после нее до нижней строки excel, и, таким образом, excel не может вставить ее на целевой лист из-за своего размера. Любой лучший способ сделать это?
'Range (Выбор, Cells (Rows.Count, Selection.Column) .END (xlUp)). Select' будет лучшим способом выбора исходного набора строк , но, пожалуйста, прочитайте этот ответ о том, как [избегать использования Select] (http://stackoverflow.com/a/10717999/6535336) – YowE3K
Как выглядит диапазон, который вы пытаетесь скопировать? Столбцы А через что? –
Столбцы A thru N. –