Я хочу создать простой макрос, который будет копировать диапазон ячеек с информацией, генерируемой формулами на листе 2, в диапазон ячеек на листе 1. Мне нужно вставить только ЗНАЧЕНИЯ на странице 1, оставив формулы на странице 2 на месте.

Я попробовал следующее:

Sheets("data").Range("A3:A16").Copy 
Sheets("combat").ActiveSheet.Range("A3:A16").PasteSpecial xlPasteValues
Sheets("data").Range("C3:C16").Copy 
Sheets("combat").ActiveSheet.Range("C3:C16").PasteSpecial xlPasteValues
Sheets("data").Range("D3:D16").Copy 
Sheets("combat").ActiveSheet.Range("D3:D16").PasteSpecial xlPasteValues
Sheets("data").Range("E3:E16").Copy 
Sheets("combat").ActiveSheet.Range("P3:P16").PasteSpecial xlPasteValues
Sheets("data").Range("F3:F16").Copy 
Sheets("combat").ActiveSheet.Range("R3:R16").PasteSpecial xlPasteValues
Sheets("data").Range("G3:G16").Copy 
Sheets("combat").ActiveSheet.Range("Q3:Q16").PasteSpecial xlPasteValues
Sheets("data").Range("H3:H16").Copy 
Sheets("combat").ActiveSheet.Range("S3:S16").PasteSpecial xlPasteValues

он копирует данные из ячеек, но не вставляет их на другой лист.

Если кто-нибудь знает, где я иду не так, пожалуйста, дайте мне знать!

1 ответ1

1

Если вы идете по маршруту VBA, вы можете также избегать копирования / вставки, потому что он не очень эффективен.

Sub CopyToCombat()

Dim shtData As Worksheet, shtCombat As Worksheet
Set shtData = Sheets("data")
Set shtCombat = Sheets("combat")

shtCombat.Range("A3:A16") = shtData.Range("A3:A16").Value
shtCombat.Range("C3:D16") = shtData.Range("C3:D16").Value
shtCombat.Range("P3:P16") = shtData.Range("E3:E16").Value
shtCombat.Range("R3:R16") = shtData.Range("F3:F16").Value
shtCombat.Range("Q3:Q16") = shtData.Range("G3:G16").Value
shtCombat.Range("S3:S16") = shtData.Range("H3:H16").Value

End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .