thanhmap87
Yêu THVBA
Chào mọi người , em có hàm excel sau :
Sub tinhtonkhoPXK12()
If PXK.Range("B12").Value = "" Then
PXK.Range("I12").Value = ""
Else: PXK.Range("I12").Value = "=IFERROR(VLOOKUP(B12,DMHANGHOA,9,0)+SUMIFS(GHISO!P,GHISO!I:I,PXK!B12,GHISO!A:A,""<=""&$C$3,GHISO!G:G,""NK"")-SUMIFS(GHISO!P,GHISO!I:I,PXK!B12,GHISO!A:A,""<=""&$C$3,GHISO!G:G,""XK""),"""")"
PXK.Range("I12").Value = PXK.Range("I12").Value
End If
End Sub
Với PXK là phiếu xuất kho , GHISO là sheet dữ liệu xuất nhập , DMHANGHOA là fine name của list DMHH , Hàm này dùng tính tồn kho trước thời gian có giá trị ở ô C3 ghi trên phiếu PXK . Phiếu xuất kho của em tạo chỉ có khoảng 50 dòng nên em dùng vòng lặp i cho tiện viết code ngắn gọn , đỡ mất thời gian .
Đoạn code là
Sub tinhtonkhoPXK12()
Dim i as integer
for i = 12 to 50
If PXK.Range("B" & i ).Value = "" Then
PXK.Range("I" & i ).Value = ""
Else: PXK.Range("I" & i ).Value = "=IFERROR(VLOOKUP(PXK.Range("B" & i ).Value,DMHANGHOA,9,0)+SUMIFS(GHISO!P,GHISO!I:I,PXK.Range("B" & i ).Value,GHISO!A:A,""<=""&$C$3,GHISO!G:G,""NK"")-SUMIFS(GHISO!P,GHISO!I:I,PXK.Range("B" & i ).Value,GHISO!A:A,""<=""&$C$3,GHISO!G:G,""XK""),"""")"
PXK.Range("I12").Value = PXK.Range("I12").Value
End If
Next i
End Sub
Nhưng nó bắt lỗi . Sau đó em sửa lại :
Sub TK()
Dim i As Integer
For i = 12 To 50
If PXK.Cells(i, 2).Value = "" Then
PXK.Cells(i, 9).Value = ""
Else: PXK.Cells(i, 9).Value = "=IFERROR(VLOOKUP(PXK.Cells( i , 2 ),DMHANGHOA,9,0)+SUMIFS(GHISO!P,GHISO!I:I,PXK.Cells( i , 2 ),GHISO!A:A,""<=""&$C$3,GHISO!G:G,""NK"")-SUMIFS(GHISO!P,GHISO!I:I,PXK.Cells( i , 2 ),GHISO!A:A,""<=""&$C$3,GHISO!G:G,""XK""),"""")"
PXK.Cells(i, 9).Value = PXK.Cells(i, 9).Value
End If
Next i
End Sub
Về mặt ngữ pháp , thủ tục không sai nhưng không ra kết quả . Mong mọi người giúp đỡ
Sub tinhtonkhoPXK12()
If PXK.Range("B12").Value = "" Then
PXK.Range("I12").Value = ""
Else: PXK.Range("I12").Value = "=IFERROR(VLOOKUP(B12,DMHANGHOA,9,0)+SUMIFS(GHISO!P,GHISO!I:I,PXK!B12,GHISO!A:A,""<=""&$C$3,GHISO!G:G,""NK"")-SUMIFS(GHISO!P,GHISO!I:I,PXK!B12,GHISO!A:A,""<=""&$C$3,GHISO!G:G,""XK""),"""")"
PXK.Range("I12").Value = PXK.Range("I12").Value
End If
End Sub
Với PXK là phiếu xuất kho , GHISO là sheet dữ liệu xuất nhập , DMHANGHOA là fine name của list DMHH , Hàm này dùng tính tồn kho trước thời gian có giá trị ở ô C3 ghi trên phiếu PXK . Phiếu xuất kho của em tạo chỉ có khoảng 50 dòng nên em dùng vòng lặp i cho tiện viết code ngắn gọn , đỡ mất thời gian .
Đoạn code là
Sub tinhtonkhoPXK12()
Dim i as integer
for i = 12 to 50
If PXK.Range("B" & i ).Value = "" Then
PXK.Range("I" & i ).Value = ""
Else: PXK.Range("I" & i ).Value = "=IFERROR(VLOOKUP(PXK.Range("B" & i ).Value,DMHANGHOA,9,0)+SUMIFS(GHISO!P,GHISO!I:I,PXK.Range("B" & i ).Value,GHISO!A:A,""<=""&$C$3,GHISO!G:G,""NK"")-SUMIFS(GHISO!P,GHISO!I:I,PXK.Range("B" & i ).Value,GHISO!A:A,""<=""&$C$3,GHISO!G:G,""XK""),"""")"
PXK.Range("I12").Value = PXK.Range("I12").Value
End If
Next i
End Sub
Nhưng nó bắt lỗi . Sau đó em sửa lại :
Sub TK()
Dim i As Integer
For i = 12 To 50
If PXK.Cells(i, 2).Value = "" Then
PXK.Cells(i, 9).Value = ""
Else: PXK.Cells(i, 9).Value = "=IFERROR(VLOOKUP(PXK.Cells( i , 2 ),DMHANGHOA,9,0)+SUMIFS(GHISO!P,GHISO!I:I,PXK.Cells( i , 2 ),GHISO!A:A,""<=""&$C$3,GHISO!G:G,""NK"")-SUMIFS(GHISO!P,GHISO!I:I,PXK.Cells( i , 2 ),GHISO!A:A,""<=""&$C$3,GHISO!G:G,""XK""),"""")"
PXK.Cells(i, 9).Value = PXK.Cells(i, 9).Value
End If
Next i
End Sub
Về mặt ngữ pháp , thủ tục không sai nhưng không ra kết quả . Mong mọi người giúp đỡ