Как автоматически воспроизвести область ячеек на других листах?

Я хочу знать, как автоматически копировать область ячеек рабочего листа 1 на рабочий лист 2.

Объяснение :

Рабочий лист 1 — это фаза предложения, мы указываем только продукт, локализацию и цену.

Рабочий лист 2 — это этап контракта, на котором клиенты подписывают контракт, поэтому в нем содержится вся информация рабочего листа 1, а также юридическая информация.

Как автоматически воспроизвести область ячеек на других листах?

Все, что между оранжевой строкой (13) и последней строкой, где написано «ВСЕГО H.T», необходимо воспроизвести в договоре.

Как автоматически воспроизвести область ячеек на других листах?

Итак, вы видите, что для этого создана вторая страница.

Моя идея:

Я хотел сделать простой Copy и PasteSpecial xlPasteFormats с обозначенной областью, но проблема в том, что каждый контракт отличается.

Теперь мне нужно найти способ выбрать все между A13:I13 и строкой, где написано «TOTAL H.T».

Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
1
0
40
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я предполагаю, что вы имеете в виду переменное количество строк между 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

Последняя строка не работала, поэтому я изменил ее.

salifgotem 22.03.2022 15:00

Это ответ:

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

Так там же формат!

Спасибо команде.

Другие вопросы по теме