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

Например, скопируйте ячейки, A10, F2, F3 и F34 со страницы 1, в A2 на листе 2 и начните новую строку.

Цель состоит в том, чтобы скопировать определенную информацию из счета-фактуры (лист 1)

  • A10 - Заказчик
  • F2 - Дата
  • F3 - Счет №
  • F34 - Общая стоимость

в одну строку на другом листе для отчетности (лист 2)

Когда я заполняю новый счет, я надеюсь запустить тот же макрос, чтобы скопировать эти ячейки в следующую пустую строку на листе 2.

2 ответа2

0

Этот макрос VBA сделает это:

Public Sub resume_invoice()
    Dim wkb As Workbook
    Dim wks, wks1 As Worksheet
    Set wkb = ThisWorkbook
    Set wks = wkb.Sheets(1)
    Set wks1 = wkb.Sheets(2)
    use_row = wks1.Cells(wks1.Rows.Count, "A").End(xlUp).Row
    use_row = use_row + 1
    If wks.Cells(3, 6) <> wks1.Cells(use_row - 1, 3) Then
        wks1.Cells(use_row, 1) = wks.Cells(10, 1)
        wks1.Cells(use_row, 2) = wks.Cells(2, 6)
        wks1.Cells(use_row, 3) = wks.Cells(3, 6)
        wks1.Cells(use_row, 4) = wks.Cells(34, 6)
        Set wkb = Nothing
        Set wks = Nothing
        Set wks1 = Nothing
    End If
End Sub

Перейдите в macro / VBA, под ThisWorkbook вставьте модуль и вставьте код.

Для удобства использования вы можете назначить кнопку для его выполнения.

0

Для простоты и удобства отладки используйте вспомогательные ячейки.

В неиспользуемой строке, например строке 99, укажите ссылку на четыре исходные ячейки (A99 = A10, B99 = F2, C99 = F3, D99 = F34). Тогда макрос прост. Скройте строку 99, чтобы сохранить ее в чистоте.

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