Скопируйте / вставьте диапазон как значения в VBA, а не весь лист - PullRequest
0 голосов
/ 09 ноября 2018

Прямо сейчас я делаю это:

xlwb.Sheets(curSheet).Cells.Copy
xlwb.Sheets(curSheet).Cells.PasteSpecial (xlValues)

Это позволяет мне копировать / вставлять весь лист на месте как значения.

Однако технически я хочу сделать это только для всех столбцов между строкой 1 и рядом строк внизу, назовите это finalRow. После этого есть содержание, которое я хочу оставить в виде формул.

Как я могу скопировать / вставить строки от 1 до finalRow в качестве значения? Технически я запускаю этот код из Access VBA, но этот код предназначен для Excel.

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

Пропускать буфер обмена при копировании только значений:

With xlwb.Sheets(curSheet).Rows("1:" & lastrow)
    .Value = .Value
End With
0 голосов
/ 09 ноября 2018

Вы можете использовать следующий синтаксис

xlwb.Worksheets(curSheet).Rows(1 & ":" & lastRow).Copy
xlwb.Worksheets(curSheet).Range("A1").PasteSpecial xlValues
Application.CutCopyMode = False

При необходимости измените диапазон вставки.

...