По возможности старайтесь не использовать Copy Paste с VBA, а также избегайте выбора . Поскольку вы просто хотите копировать значения, использование подхода VBA Value
, вероятно, будет проще. Измените строку кода, куда вы пытаетесь вставить специальное значение для установки значения. Смотри ниже
'paste values into empty row
Sheet1.Cells(eRow, 1).Resize(RNG.Rows.Count, RNG.Columns.Count).Value = RNG.Value
wb1.Close
Что это делает, начиная с Cells (erow, 1), код использует Resize
, чтобы установить начальный диапазон равным количеству строк и столбцов или вашей переменной RNG
. Тогда это просто установка значений, тот же результат, что и у CopyPasteValue, только с меньшими накладными расходами.
Однако, если вы хотите сохранить подход «копировать вставку», измените код следующим образом:
'paste values into empty row
Sheet1.Cells(eRow, 1).PasteSpecial Paste:=xlPasteValues
wb1.Close