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