Я создаю базу данных для моего друга. на 2 листах у меня есть список счетов, который вызывает данные из списка инвентаря на основе кода товара (используя Vloolup). Затем у меня есть формула VBA, которая перемещает данные из каждого счета-фактуры в таблицу данных счета-фактуры, которая содержит данные о каждой продаже. Это код, который я использую для переноса данных из каждого счета на лист "Данные счета".
Я включил копию страницы счета-фактуры, чтобы вы могли видеть, откуда тянет мой код
Option Explicit
Sub Button2_Click()
Dim rng As Range
Dim i As Long
Dim a As Long
Dim rng_dest As Range
Application.ScreenUpdating = False
'Check if invoice # is found on sheet "Invoice data"
i = 1
Do Until Sheets("Invoice data").Range("A" & i).Value = ""
If Sheets("Invoice data").Range("A" & i).Value = Sheets("Invoice").Range("F4").Value Then
'Ask overwrite invoice #?
If MsgBox("Overwrite invoice data?", vbYesNo) = vbNo Then
Exit Sub
Else
Exit Do
End If
End If
i = i + 1
Loop
i = 1
Set rng_dest = Sheets("Invoice data").Range("G:K")
'Delete rows if invoice # is found
Do Until Sheets("Invoice data").Range("A" & i).Value = ""
If Sheets("Invoice data").Range("A" & i).Value = Sheets("Invoice").Range("F4").Value Then
Sheets("Invoice data").Range("A" & i).EntireRow.Delete
i = 1
End If
i = i + 1
Loop
' Find first empty row in columns G:K on sheet Invoice data
Do Until WorksheetFunction.CountA(rng_dest.Rows(i)) = 0
i = i + 1
Loop
'Copy range B13:I38 on sheet Invoice
Set rng = Sheets("Invoice").Range("B13:F32")
' Copy rows containing values to sheet Invoice data
For a = 1 To rng.Rows.Count
If WorksheetFunction.CountA(rng.Rows(a)) <> 0 Then
rng_dest.Rows(i).Value = rng.Rows(a).Value
'Copy Invoice number
Sheets("Invoice data").Range("A" & i).Value = Sheets("Invoice").Range("F4").Value
'Copy Date
Sheets("Invoice data").Range("B" & i).Value = Sheets("Invoice").Range("F3").Value
'Copy Company name
Sheets("Invoice data").Range("C" & i).Value = Sheets("Invoice").Range("C7").Value
'Copy Add
Sheets("Invoice data").Range("D" & i).Value = Sheets("Invoice").Range("C8").Value
'Copy PIN
Sheets("Invoice data").Range("E" & i).Value = Sheets("Invoice").Range("C9").Value
'Copy Phone
Sheets("Invoice data").Range("F" & i).Value = Sheets("Invoice").Range("C10").Value
i = i + 1
End If
Next a
MsgBox ("Invoice saved!")
Application.ScreenUpdating = True
Sheets("Invoice").Range("F4").Value = _
Sheets("Invoice").Range("F4").Value + 1
End Sub
Sub Button1_Click()
UserForm1.Show
End Sub
Моя проблема в том, что когда я сохраняю каждый счет-фактуру, я получаю также все пустые строки в счете-фактуре: