Я изучал код VBA, но это застряло. Я использую Excel-2013.
У меня есть 4 ячейки в листе «Счет-фактура» (ячейки E3, C3, E36 и E34), которые я хочу перенести на лист "Способ оплаты" в следующей доступной строке. Первый ряд, который будет доступен, - это третий ряд. Я хотел бы, чтобы ячейка E3 копировалась в столбец C, C3 - в D, E36 - в E, а E34 - в F. Когда каждый счет сохраняется, я хочу, чтобы эти данные были перенесены. У меня уже есть код для очистки моего счета. Мне просто нужно перенести эти 4 ячейки данных.

1 ответ1

1

Попробуйте следующее:

Sub CopyDataToMethodOfPayment()
    Dim NewRow: NewRow = GetFirstEmptyRowOnMethodOfPayment     'Find the next row free on "Method Of Payment"
    Worksheets("Method Of Payment").Cells(NewRow, 3).Value = Worksheets("Invoice").Range("E3").Value    'Copy E3 to Column C on empty row
    Worksheets("Method Of Payment").Cells(NewRow, 4).Value = Worksheets("Invoice").Range("C3").Value    'Copy C3 to Column D on empty row
    Worksheets("Method Of Payment").Cells(NewRow, 5).Value = Worksheets("Invoice").Range("E36").Value   'Copy E36 to Column E on empty row
    Worksheets("Method Of Payment").Cells(NewRow, 6).Value = Worksheets("Invoice").Range("E34").Value   'Copy E34 to Column F on empty row
End Sub

Function GetFirstEmptyRowOnMethodOfPayment() As Integer
    Dim RowCount: RowCount = 1 'Set row to start looking for empty rows from
    Do
        RowCount = RowCount + 1 'Increment to next row
    Loop Until IsEmpty(Worksheets("Method Of Payment").Cells(RowCount, 3).Value) 'Stop once we find an empty one
    GetFirstEmptyRowOnMethodOfPayment = RowCount    'Return the row number of the empty one
End Function

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