2014-12-16 4 views
-1

Я хочу, чтобы сделать макрос для копирования Date из ячейки J5, копия Invoice No. из ячейки H6, копия consumer name из слившихся клеток A6 и копировать только сумму элементы в описании продукта: диапазон ячеек (B11: B21) для позиций на листе счета-фактуры и вставить эти значения в другой лист по названию счета-фактуры, есть таблица с заголовками consumer name, date, Invoice No. ItemsExcel VBA для поиска определенного текста в ячейке, а затем скопировать на другой лист

(Суб заголовки пункта 1, пункт 2, пункт 3, пункт4, Пункт 6, Пункт 7, Пункт 8, Пункт 9, Пункт 10, Пункт 11, Пункт 12)

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

https://www.dropbox.com/s/6wu69cgn3qfvr67/Invoice.xlsx?dl=0 

ответ

1

Пуск, перемещая данные, которые вы ЗНАЕТЕ движения путем установки значений в начале.
Трудная часть проверяет каждый предмет.

Поскольку вы знаете, что из них 12, пока вы предоставили пример, как он будет выложен, вы просто пропустите счет 12 и для каждого из них сравните элементы в счете-фактуре с Номер продукта, если он указан в счете-фактуре, он будет установлен в соответствующем столбце на целевом листе.

ИСПЫТАНИЕ:, используя ваш примерный лист, см. Скриншоты.

Sub InvoiceRecord() 

Dim source As String 
Dim target As String 
Dim tempCode As String 
Dim tempItem As String 
Dim prodCode As String 
Dim count As Long 
Dim lCol As Long 
Dim tRow As Long 
Dim lastTRow As Long 

    source = "Invoice" 
    target = "Invoice-Record" 

    lastTRow = Sheets(target).Range("A" & Rows.count).End(xlUp).Row 
    tRow = lastTRow + 1 'New row on target Sheet 

    'Move the General Invoice Info over to Target 
    Sheets(target).Cells(tRow, "A") = Sheets(source).Range("A6").Value 'Consumer 
    Sheets(target).Cells(tRow, "B") = Sheets(source).Range("J5").Value 'Date 
    Sheets(target).Cells(tRow, "C") = Sheets(source).Range("H6").Value 'Invoice No 
    Sheets(target).Cells(tRow, "P") = Sheets(source).Range("J23").Value 'Net Amount 

    'Now establish which Items have to move over 

    For count = 1 To 12   'Looking for each of the 12 Items 

     prodCode = "i" & count 'Set a Product Code based on "i"n n = count 
     lCol = count + 3  'The column number is 3 more than ProductCode Number 

     For lRow = 11 To 22  'Loop through each row on the Source 
      If Sheets(source).Cells(lRow, "A").Value > 0 Then 
       tempCode = Sheets(source).Cells(lRow, "C").Value 'Get temp product code for row 

       If tempCode = prodCode Then 'Insert the Qty in the Column for that item 
        Sheets(target).Cells(tRow, lCol) = Sheets(source).Cells(lRow, "A") 
       End If 
      End If 
     Next lRow 
    Next count 
End Sub 

Invoice RECORD

Смежные вопросы