bạn po pikachu ơi ! mình đã kiểm tra lại vùng dữ liệu nhưng vẫn ko được. Bây giờ phải làm gì tiếp đây.Mình nhờ bạn xem lại giúp mình . nó báo run-time error '1004' . unable to get the match property of the worksheetfunctionclass
Option Explicit
Public i1 As Integer, i2 As Integer, i3 As Integer, i4 As Integer
Public eR1 As Integer, eR2 As Integer, k, j1, j2
Public SHd As Worksheet, SDa As Worksheet
Sub PreviewInvoice()
ActiveWindow.SelectedSheets.PrintPreview
End Sub
Sub khaibao()
Set SHd = Sheets("Invoice") ' <-- Gán SHd là sheet 'Invoice'
Set SDa = Sheets("Data") ' <-- Gán SHd là sheet 'Data'
End Sub
Sub SaveInvoiceProcess()
Application.ScreenUpdating = False
LuuDL
XoaDL
Application.ScreenUpdating = True
End Sub
Sub LuuDL()
Dim A2
khaibao ' <-- Goi sub 'khaibao'
eR1 = SHd.Range("C21").End(xlUp).Row ' <-- Dong cuoi trong bang hoa don
eR2 = SDa.Range("A65536").End(xlUp).Row + 1 ' <-- Dong trong ngay duoi dong cuoi trong 'Data'
If eR1 >= 12 Then
k = WorksheetFunction.CountIf(SDa.Range("C2:C" & eR2), _
Range("B1"))
If k > 0 Then
i2 = WorksheetFunction.Match(SHd.Range("B1"), _
Sheets("Data").Range("C1:C" & eR2), 0) ' <-- Dong dau tien chua so HDon
i3 = WorksheetFunction.Match(SHd.Range("B1"), _
Sheets("Data").Range("C1:C" & eR2), 1) ' <-- Dong cuoi cung chua so HDon
SDa.Range("A" & i3 + 1 & ":H" & i3 + eR1 - 11).Insert Shift:=xlDown ' <-- Chen them dong
SDa.Range("H" & i2).Copy SDa.Range("H" & i3 + 1 & ":H" & i3 + eR1 - 11)
SDa.Range("A" & i2 & ":H" & i3).Delete Shift:=xlUp ' <-- Xoa dong cu
eR2 = i2
End If
Else
MsgBox "Khong co du lieu de luu", , "Error"
Exit Sub
End If
'======================================
SHd.Range("B12:E" & eR1).Copy
SDa.Cells(eR2, 4).PasteSpecial xlPasteValues
SDa.Cells(eR2, 1) = SHd.Range("E10")
SDa.Cells(eR2, 2) = SHd.Range("E1")
SDa.Cells(eR2, 3) = SHd.Range("B1")
SDa.Range("A" & eR2 & ":C" & eR2).Copy _
SDa.Range("A" & eR2 & ":C" & eR2 + eR1 - 12)
Home
End Sub
Sub XoaDL()
SHd.Range("B1") = SHd.Range("B1").Value + 1
SHd.Range("B12:C21").ClearContents
Sheets("Home").Activate
If SDa.Range("H" & eR2) = "" Then Sheets("Home").Cells(j2, j1) _
= WorksheetFunction.Sum(SDa.Range("G" & eR2 & ":G" & eR2 + eR1 - 12))
End Sub
Sub Home()
i4 = WorksheetFunction.Match(SHd.Range("E1"), _
Sheets("Table No.").Range("A2:A25"), 0)
If i4 <= 8 Then
j1 = 4
ElseIf i4 <= 16 Then
j1 = 6
Else: j1 = 8
End If
j2 = 3 * (i4 Mod 8) + 2
If j2 = 6 Then j2 = 26
End Sub