Я работаю с двумя рабочими тетрадями.Одна рабочая книга (DDwb) содержит шаблон списка доставки, а другая рабочая книга (Rwb) содержит запись выполненных поставок, отображающую только ключевую информацию о доставке из шаблона списка доставки.
Каждая новая доставка появляется в шаблоне в новой строке между строками 14 и 27.
Этот шаблон сохраняется в виде отдельного файла в конце месяца.Несколько поставок будут добавлены в течение месяца в разное время.Я хотел бы поймать запись о новой доставке в Rwb, как она добавлена в шаблон.
С точки зрения кода события изменения рабочего листа, я хочу скопировать сводную информацию, как только вся информация для этогодоставка была введена.Например, ячейки: D14, E14, F14 и N14 содержат сводную информацию о ключе для первой поставки в этом месяце.Я хочу подождать, пока все это не будет заполнено.
Кроме того, я хочу очистить свой раздел «значение ячейки> 0», используя свойство «С», но при этом возникают ошибки компиляции.
Как мне дождаться полного заполнения ячеек в соответствующей строке?
Вот код, который у меня есть.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim DDwb As Workbook, Rwb As Workbook
Dim cel As Range
Dim myrow As Long
Set DDwb = ThisWorkbook
Set Rwb = Workbooks.Open("C:\Users\Admin\OneDrive\Documents (shared)\TEST - job and stock manager.xlsm")
If Not Intersect(Target, Range("D14:N27")) Is Nothing Then
For Each cel In Target
myrow = cel.Row
Application.EnableEvents = False
If DDwb.Sheets("DD template (progressive)").Cells(myrow, 4).Value > 0 And DDwb.Sheets("DD template (progressive)").Cells(myrow, 5).Value > 0 And DDwb.Sheets("DD template (progressive)").Cells(myrow, 6).Value > 0 Then
Application.ScreenUpdating = False
'insert new row
Rwb.Sheets("Record of deliveries").Rows("4:4").Insert Shift:=xlShiftDown, CopyOrigin:=xlFormatFromRightOrBelow
'customer name
Rwb.Sheets("Record of deliveries").Cells(4, 2) = "Customer name"
'customer order number
Rwb.Sheets("Record of deliveries").Cells(4, 3) = DDwb.Sheets("DD template (progressive)").Range("D" & Target.Row)
'delivery qty
Rwb.Sheets("Record of deliveries").Cells(4, 4) = DDwb.Sheets("DD template (progressive)").Range("E" & Target.Row)
'description
Rwb.Sheets("Record of deliveries").Cells(4, 5) = DDwb.Sheets("DD template (progressive)").Range("F" & Target.Row)
'delivery date
Rwb.Sheets("Record of deliveries").Cells(4, 6) = "=TODAY()"
'DD docket number
Rwb.Sheets("Record of deliveries").Cells(4, 7) = DDwb.Sheets("DD template (progressive)").Range("L" & Target.Row)
'delivery notes
Rwb.Sheets("Record of deliveries").Cells(4, 8) = DDwb.Sheets("DD template (progressive)").Range("N" & Target.Row)
Rwb.Save
Application.ScreenUpdating = True
Application.EnableEvents = True
End If
Next cel
End If
End Sub