Нужна лучшая копия Paste VBA для заказа на покупку - PullRequest
0 голосов
/ 27 декабря 2018

Я новичок в VBA (самоучка), и я создал заказ на поставку в Excel (лист1), в котором я хочу, чтобы содержимое отдельных ячеек было вставлено на лист 6.

У меня естьперепробовал много разных опций, которые иногда работают на какую то часть, тогда, если я попробую создать новую, она сломается.Это то, что у меня сейчас есть и ломается в функции вставки.Лист1 (Заказ на поставку) имеет объединенные ячейки, которые я учел в Листе6.Я пытался объединить их, а не объединять их.

Что я хочу сделать: Возьмите данные из Sheet1 (PO) и сохраните их в Sheet6 (Закупки) для последующей отчетности.После того, как данные скопированы на Sheet6, я хочу иметь возможность очистить содержимое Sheet1 и запустить новый, в конечном итоге сбросив его.Затем, нажав кнопку «Отправить ПО», добавьте эти данные на лист 6 в следующей пустой строке.

ПРИМЕЧАНИЕ. Первые несколько полей необходимо продублировать для каждой заказанной линейки продуктов.Вот что они: G4 = Номер заказа, B15 = Заказано, F15 = Дата заказа и E7 = Имя поставщика.

Я был бы ОЧЕНЬ благодарен за любую помощь или совет, который вы дали.Заранее спасибо.

Ниже приведен код VBA, который у меня сейчас есть:

Private Sub CopyPO()
'
' CopyPO Macro

    erow = Sheet6.Cells(Rows.Count, 3).End(xlUp).Offset(1, 0).Row
    lastrow = Sheet6.Range("F" & Rows.Count).End(xlUp).Row
         'MsgBox "The last row in column F is" & lastrow

    Do Until lastrow
    Cells(erow, 1).Value = Sheet1.[G4].Value
    Cells(erow, 2).Value = Sheet1.[B15].Value
    Cells(erow, 3).Value = Sheet1.[F15].Value
    Cells(erow, 4).Value = Sheet1.[E7].ValueSheet1.Select
    Loop

    Range("A19:H19").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Copy

    Sheet6.Select
    Range("A1").Select
    ActiveCell.Offset(1, 4).Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=True, Transpose:=False


End Sub


Sub Reset()

    Sheet1.Select
    Range("$E$7:$G$7").Select
    Selection.ClearContents

    Range("$D$19:$F$19").Select
    Selection.ClearContents

    Range("$D$20:$F$36").Select
    Selection.ClearContents

    Range("$A$19:$A$36").Select
    Selection.ClearContents

    Range("$B$15:$C$15").Select
    Selection.ClearContents

    Sheet1.Range("G4").Value = Sheet1.Range("G4") + 1

    Sheet1.Range("E7").Select

End Sub
...