Я хочу знать, как автоматически копировать область ячеек рабочего листа 1 на рабочий лист 2.
Объяснение :
Рабочий лист 1 — это фаза предложения, мы указываем только продукт, локализацию и цену.
Рабочий лист 2 — это этап контракта, на котором клиенты подписывают контракт, поэтому в нем содержится вся информация рабочего листа 1, а также юридическая информация.
Все, что между оранжевой строкой (13) и последней строкой, где написано «ВСЕГО H.T», необходимо воспроизвести в договоре.
Итак, вы видите, что для этого создана вторая страница.
Моя идея:
Я хотел сделать простой Copy и PasteSpecial xlPasteFormats с обозначенной областью, но проблема в том, что каждый контракт отличается.
Теперь мне нужно найти способ выбрать все между A13:I13 и строкой, где написано «TOTAL H.T».


Я предполагаю, что вы имеете в виду переменное количество строк между 13 и "TOTAL HT"
Во всяком случае, вот код:
Sub Copy_Paste()
Dim sht1 As Worksheet: Set sht1 = ThisWorkbook.Worksheets("Sheet1")
Dim sht2 As Worksheet: Set sht2 = ThisWorkbook.Worksheets("Sheet2")
Dim last_row As Integer: last_row = sht1.Cells(sht1.Rows.Count, 3).End(xlUp).Row
Dim rng As Range: Set rng = sht1.Range(sht1.Cells(13, 1), sht1.Cells(last_row, 9))
rng.Copy (sht2.Range("I1"))
End Sub
Это ответ:
Sub Copy_Paste()
Dim sht1 As Worksheet: Set sht1 = ThisWorkbook.Worksheets("Sheet1")
Dim sht2 As Worksheet: Set sht2 = ThisWorkbook.Worksheets("Sheet2")
Dim last_row As Integer: last_row = sht1.Cells(sht1.Rows.Count, 3).End(xlUp).Row
Dim rng As Range: Set rng = sht1.Range(sht1.Cells(13, 1), sht1.Cells(last_row, 9))
rng.Copy
sht2.Range("I52").PasteSpecial xlPasteValues
sht2.Range("I52").PasteSpecial xlPasteFormats
End Sub
Так там же формат!
Спасибо команде.
Последняя строка не работала, поэтому я изменил ее.