Код VBA Excel для переміщення даних з 4 конкретних комірок на інший робочий аркуш у наступному доступному рядку [закрито]


0

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


1
Будь ласка, поділіться тим, що ви вже маєте (лише те, що стосується вашого питання), а також те, що ви вже пробували. Якщо ви дізналися VBA, я вважаю, що ви вже щось пробували. Крім того, нам слід краще зрозуміти вашу проблему, щоб мати можливість допомогти.
Máté Juhász

У мене немає коду для цієї функції, але я вирішив її нижче.
Джен

Відповіді:


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

Це чудово спрацювало, і я зміг додати його до свого поточного коду та зателефонувати, щоб я міг зберегти, зробити pdf та роздрукувати, а потім очистити свій рахунок-фактуру все одночасно. Цінується. Останню проблему вирішити, і я думаю, що програма буде працювати.
Джен

1
@Jen Радий, що це допомогло :) Коли ви впевнені, що ваша проблема вирішена, не забудьте натиснути галочку поруч із відповіддю, яка допоможе вам
Jonno

@Junno Цікаво, чи можете ви допомогти. Зараз у вашому рядку "LOOP UNTIL" я отримую код помилки. Це говорить мені, що індекс не вийшов за межі. Я подивився, чому це може статися, але не знаю, що змінилося. Будь-які ідеї?
Джен

@Jen Ви щось змінили? Який рядок видає помилку? Аркуш все ще має назву "Спосіб оплати", а стовпець із даними все ще є C?
Jonno

Я так для обох. Без змін
Джен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.