Все, я работаю над созданием кода VBA, который сохраняет данные в форме одним нажатием кнопки.У меня есть отработанный код, но в настоящее время его отправка занимает слишком много времени, поэтому я работаю над тем, чтобы сократить его.Это фрагмент исходного кода.
Sub TransferDeliveryInfoB13()
Sheets("Parts In-Out Form").Select
Range("d9").Select
If ActiveCell.Value = ("In") And (Sheets("Parts In-Out Form").Range("b13") > 0) Then
'Copy Part Number'
Dim LastRow As Long
LastRow = Sheets("Deliveries").Cells(Rows.Count, 1).End(xlUp).Offset(1).Row
Sheets("Parts In-Out Form").Range("b13").Copy
Sheets("Deliveries").Cells(LastRow, 3).PasteSpecial xlPasteValues
'Copy Back Ordered Quanity'
Sheets("Parts In-Out Form").Range("c13").Copy
Sheets("Deliveries").Cells(LastRow, 9).PasteSpecial xlPasteValues
'Copy Back Order ETA
Sheets("Parts In-Out Form").Range("c9").Copy
Sheets("Deliveries").Cells(LastRow, 10).PasteSpecial xlPasteValues
'Copy Quanity'
Sheets("Parts In-Out Form").Range("d13").Copy
Sheets("Deliveries").Cells(LastRow, 4).PasteSpecial xlPasteValues
'Copy Employee Number
Sheets("Parts In-Out Form").Range("f9").Copy
Sheets("Deliveries").Cells(LastRow, 5).PasteSpecial xlPasteValues
'Copy BOL Number
Sheets("Parts In-Out Form").Range("h9").Copy
Sheets("Deliveries").Cells(LastRow, 2).PasteSpecial xlPasteValues
'Copy PO Number
Sheets("Parts In-Out Form").Range("f12").Copy
Sheets("Deliveries").Cells(LastRow, 8).PasteSpecial xlPasteValues
'Copying Whether or Not Back Order Delivery
Sheets("Parts In-Out Form").Range("h12").Copy
Sheets("Deliveries").Cells(LastRow, 12).PasteSpecial xlPasteValues
'Copying Date
Sheets("Parts In-Out Form").Range("b9").Copy
Sheets("Deliveries").Cells(LastRow, 1).PasteSpecial xlPasteValues
Call TransferDeliveryInfoB14
Else
Sheets("Deliveries").Select
ActiveSheet.Protect ("mustache")
Sheets("Parts In-Out Form").Range("B9,D9,F9,H9,C9,F12,B12:B42,C12:C42,D12:D42,H12").ClearContents
End If
End Sub
Sub TransferDeliveryInfoB14()
Sheets("Parts In-Out Form").Select
Range("d9").Select
If ActiveCell.Value = ("In") And (Sheets("Parts In-Out Form").Range("b14") > 0) Then
'Copy Part Number'
Dim LastRow As Long
LastRow = Sheets("Deliveries").Cells(Rows.Count, 1).End(xlUp).Offset(1).Row
Sheets("Parts In-Out Form").Range("b14").Copy
Sheets("Deliveries").Cells(LastRow, 3).PasteSpecial xlPasteValues
'Copy Back Ordered Quanity'
Sheets("Parts In-Out Form").Range("c14").Copy
Sheets("Deliveries").Cells(LastRow, 9).PasteSpecial xlPasteValues
'Copy Back Order ETA
Sheets("Parts In-Out Form").Range("c9").Copy
Sheets("Deliveries").Cells(LastRow, 10).PasteSpecial xlPasteValues
'Copy Quanity'
Sheets("Parts In-Out Form").Range("d14").Copy
Sheets("Deliveries").Cells(LastRow, 4).PasteSpecial xlPasteValues
'Copy Employee Number
Sheets("Parts In-Out Form").Range("f9").Copy
Sheets("Deliveries").Cells(LastRow, 5).PasteSpecial xlPasteValues
'Copy BOL Number
Sheets("Parts In-Out Form").Range("h9").Copy
Sheets("Deliveries").Cells(LastRow, 2).PasteSpecial xlPasteValues
'Copy PO Number
Sheets("Parts In-Out Form").Range("f12").Copy
Sheets("Deliveries").Cells(LastRow, 8).PasteSpecial xlPasteValues
'Copying Whether or Not Back Order Delivery
Sheets("Parts In-Out Form").Range("h12").Copy
Sheets("Deliveries").Cells(LastRow, 12).PasteSpecial xlPasteValues
'Copying Date
Sheets("Parts In-Out Form").Range("b9").Copy
Sheets("Deliveries").Cells(LastRow, 1).PasteSpecial xlPasteValues
Call TransferDeliveryInfoB15
Else
Sheets("Deliveries").Select
ActiveSheet.Protect ("mustache")
Sheets("Parts In-Out Form").Range("B9,D9,F9,H9,C9,F12,B12:B42,C12:C42,D12:D42,H12").ClearContents
End If
End Sub
Я пытаюсь сделать вместо миллиона операторов if then для каждой ячейки, чтобы сжать ее в один код, где она будет копировать и вставлять номер деталии количество.и если есть значение, оно скопирует бол, дату, номер сотрудника в соответствующем столбце в строке.вот что у меня есть.
Sub TransferDeliveryInfoB12()
'make sure to unlock sheet
Sheets("Deliveries").Select
ActiveSheet.Unprotect ("mustache")
Sheets("Parts In-Out Form").Select
Range("d9").Select
If ActiveCell.Value = ("In") Then
Dim LastRow As Long
LastRow = Sheets("Deliveries").Cells(Rows.Count, 1).End(xlUp).Offset(1).Row
'Copy Parts Number
Sheets("Parts In-Out Form").Range("b12:b42").Copy
Sheets("Deliveries").Cells(LastRow, 3).PasteSpecial xlPasteValues
'Copy Back Ordered Quanity
Sheets("Parts In-Out Form").Range("c12:c42").Copy
Sheets("Deliveries").Cells(LastRow, 9).PasteSpecial xlPasteValues
'Copy Parts Quanity
Sheets("Parts In-Out Form").Range("b12:b42").Copy
Sheets("Deliveries").Cells(LastRow, 4).PasteSpecial xlPasteValues
Я не совсем уверен, куда идти с этой точки.Заранее благодарим за все указания и помощь.