Em mới mày mò học vba, mong mọi người giúp đỡ
Em có sheet 1 là sheet các mặt hàng và số lượng, sheet 2 và 3 là số lượng các cửa hàng lấy
Em muốn sheet 4 sẽ là sheet hiển thị toàn bộ các mặt hàng cùng số lượng từ sheet 2, 3 cũng như hàng tồn
Nhưng khi em khởi chạy thì nó chạy không đúng, em cũng không biết mình sai chỗ nào, mong mọi người hướng dẫn chi tiết giúp em ạ
Function solonnhat()
solonnhat = Application.WorksheetFunction.Max(Sheet1.Range("A:A"))
End Function
Sub locdulieu()
Dim a As Long
Dim dulieu1 As Range
Dim giatri1 As Long
Dim dulieu2 As Range
Dim giatri2 As Long
Dim dulieu3 As Range
Dim giatri3 As Long
Dim socantim As Long
Dim lrow As Long
lrow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row + 1
For a = 1 To solonnhat
Set dulieu1 = Sheet1.Range("A:A").Find(what:=a, LookIn:=xlFormulas, LookAt:=xlWhole)
dulieu1.Offset(0, 2).Value = giatri1
Set dulieu2 = Sheet2.Range("A:A").Find(what:=a, LookIn:=xlFormulas, LookAt:=xlWhole)
If dulieu2 Is Nothing Then
giatri2 = 0
Sheet4.Range("A" & lrow).Offset(0, 4).Value = giatri2
Else
dulieu2.Offset(0, 2).Value = giatri2
Sheet4.Range("A" & lrow).Offset(0, 4).Value = giatri2
End If
Set dulieu3 = Sheet3.Range("A:A").Find(what:=a, LookIn:=xlFormulas, LookAt:=xlWhole)
If dulieu3 Is Nothing Then
giatri3 = 0
Sheet4.Range("A" & lrow).Offset(0, 5).Value = giatri3
Else
dulieu3.Offset(0, 2).Value = giatri3
Sheet4.Range("A" & lrow).Offset(0, 5).Value = giatri3
End If
socantim = giatri1 - (giatri2 + giatri3)
Sheet4.Range("A" & lrow).Value = a
Sheet4.Range("A" & lrow).Offset(0, 1).Value = dulieu1.Offset(0, 1).Value
Sheet4.Range("A" & lrow).Offset(0, 2).Value = dulieu1.Offset(0, 2).Value
Sheet4.Range("A" & lrow).Offset(0, 3).Value = socantim
Next a
End Sub
Em có sheet 1 là sheet các mặt hàng và số lượng, sheet 2 và 3 là số lượng các cửa hàng lấy
Em muốn sheet 4 sẽ là sheet hiển thị toàn bộ các mặt hàng cùng số lượng từ sheet 2, 3 cũng như hàng tồn
Nhưng khi em khởi chạy thì nó chạy không đúng, em cũng không biết mình sai chỗ nào, mong mọi người hướng dẫn chi tiết giúp em ạ
Function solonnhat()
solonnhat = Application.WorksheetFunction.Max(Sheet1.Range("A:A"))
End Function
Sub locdulieu()
Dim a As Long
Dim dulieu1 As Range
Dim giatri1 As Long
Dim dulieu2 As Range
Dim giatri2 As Long
Dim dulieu3 As Range
Dim giatri3 As Long
Dim socantim As Long
Dim lrow As Long
lrow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row + 1
For a = 1 To solonnhat
Set dulieu1 = Sheet1.Range("A:A").Find(what:=a, LookIn:=xlFormulas, LookAt:=xlWhole)
dulieu1.Offset(0, 2).Value = giatri1
Set dulieu2 = Sheet2.Range("A:A").Find(what:=a, LookIn:=xlFormulas, LookAt:=xlWhole)
If dulieu2 Is Nothing Then
giatri2 = 0
Sheet4.Range("A" & lrow).Offset(0, 4).Value = giatri2
Else
dulieu2.Offset(0, 2).Value = giatri2
Sheet4.Range("A" & lrow).Offset(0, 4).Value = giatri2
End If
Set dulieu3 = Sheet3.Range("A:A").Find(what:=a, LookIn:=xlFormulas, LookAt:=xlWhole)
If dulieu3 Is Nothing Then
giatri3 = 0
Sheet4.Range("A" & lrow).Offset(0, 5).Value = giatri3
Else
dulieu3.Offset(0, 2).Value = giatri3
Sheet4.Range("A" & lrow).Offset(0, 5).Value = giatri3
End If
socantim = giatri1 - (giatri2 + giatri3)
Sheet4.Range("A" & lrow).Value = a
Sheet4.Range("A" & lrow).Offset(0, 1).Value = dulieu1.Offset(0, 1).Value
Sheet4.Range("A" & lrow).Offset(0, 2).Value = dulieu1.Offset(0, 2).Value
Sheet4.Range("A" & lrow).Offset(0, 3).Value = socantim
Next a
End Sub