Копирование или перемещение данных счета-фактуры на другой лист в моей книге Excel с использованием сценария.
У меня есть счет-фактура (Счет). Я хотел бы, чтобы скрипт получал номер счета, номер клиента и каждую позицию, включая количество и количество для каждого элемента. Я хотел бы перенести эту информацию на другой лист в моей книге под названием (Список счетов-фактур 2). Я нашел некоторые сценарии в сети, но я не смог заставить их функционировать должным образом, в основном из-за недостатка знаний в области сценариев. Кто-нибудь может помочь? Любая помощь будет принята с благодарностью. Счет
Вот как я хотел бы, чтобы данные выглядели на рабочем листе (Список счетов 2). Мне все равно, будет ли № счета-фактуры или клиент отображаться в каждой строке для конкретного счета-фактуры, но если будет проще кодировать, чтобы эти элементы отображались в каждой строке, что было бы хорошо. Список счетов 2
Я попробовал скрипт, который нашел в Интернете, но не могу понять, как заставить его работать так, как я хочу, даже если это правильный сценарий для этой цели.
Sub SendToInvoiceList2()
Dim ws As Worksheet: Set ws = Worksheets("Invoice")
Dim wsData As Worksheet: Set wsData = Worksheets("Invoice List 2")
'declare and set the worksheets, amend as required
Dim i As Long, dataRows As Long
'TRANSFER data to Invoice List 2
dataRows = ws.Range("B14").Columns(1).SpecialCells(xlCellTypeConstants,
1).Count
'count the number of Invoice lines with data (non-empty)
'I'm not sure what should go in the ws.Range and the wsData.Range below.
ws.Range("B1").Copy wsData.Range("F" & Rows.Count).End(xlUp).Offset(1, 0)
'copy invoice lines to Invoice Data
For i = 1 To dataRows 'loop from 1 to however many lines your named range "Invoice" has
ws.Range("E4").Copy
wsData.Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
ws.Range("D6").Copy
wsData.Range("B" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
ws.Range("B14").Copy
wsData.Range("C" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
ws.Range("D14").Copy
wsData.Range("D" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
ws.Range("E14").Copy
wsData.Range("E" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Next i
End Sub