xin hỏi cách cộng dồn array (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

redosolo

Thành viên chính thức
Tham gia
19/2/13
Bài viết
61
Được thích
4
Mình có 1 vấn đề mà suy nghĩ hoài ko được.
Có cách nào cộng dồn array liên tục đc ko, dạng như là sau đây :
For .....
For
Sẽ sinh ra 1 ArrTemp ở đây
Next
Arr = Arr + ArrTemp
Next

Mình làm hoài mà nó cứ báo lỗi Type Mistake.

Mình có đính kèm file. Sheet Enfa sẽ được lấy theo số KH được qui định sẵn (theo ngày, theo shop và Số lượng KH cần lấy ở Sheet 1)
 
Chả thấy Code lỗi của bạn đâu và cũng không hiểu bạn định làm gì
 
Upvote 0
Code nằm trong sheet Input Data đó bạn. Mình mún là khi bấm nút, nó sẽ tự copy dữ liệu ra 2 sheet theo yêu cầu, sheet Switching thì mình làm đc rồi, còn sheet Enfa thì chưa đc
 
Upvote 0
Bạn cứ nói rõ bạn cần làm gì thì có thể nhanh và hợp lý hơn nhiều so với đi theo code của bạn
 
Upvote 0
Mình mún là khi click thì nó sẽ tự chuyển tất cả những KH nào là switching qua sheet Switching, những KH ko phải là Switching sẽ đc lấy theo điều kiện ở Sheet 1 (ngày thực hiện, Mã KH và số lượng cần lấy của từng shop).
Thí dụ : ngày 10/9 sẽ lấy 6 KH bất kỳ không phải switching ở cửa hàng có mã AGGLXN14NTRAI
Sheet Switching thì mình đã làm đc, còn sheet Enfa thì chưa. Mong mọi người giúp mình cái.
KH Switching sẽ được phân biệt ở cột 61 (1 là switching, 0 là enfa)
 
Upvote 0
Ban test Code này xem sao:
Mã:
Sub KHEnfa()
Dim Tm1, Tm2, Kq(), i, j, n, m
Tm1 = Sheet1.Range("A7:BI" & Sheet1.[A65536].End(3).Row)
Tm2 = Sheet4.Range("A7:C" & Sheet4.[A65536].End(3).Row)
ReDim Kq(1 To UBound(Tm1, 1), 1 To 61)
For i = 1 To UBound(Tm2, 1)
For j = 1 To UBound(Tm1, 1)
If Tm1(j, 4) = Tm2(i, 1) And Tm1(j, 5) = Tm2(i, 2) And Tm1(j, 61) = 0 And Tm2(i, 3) > 0 Then
n = n + 1
 Tm2(i, 3) = Tm2(i, 3) - 1
For m = 2 To 61
Kq(n, m) = Tm1(j, m)
Next m
Kq(n, 1) = n
End If
Next j
Next i
Sheet5.[A7:BI65536].ClearContents
Sheet5.[A7].Resize(n, 61) = Kq
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Tks bạn đã giúp đỡ. Mình đã làm được rồi :D
 
Upvote 0
Cùng 1 file đó nhưng giờ mình mún lấy những data không có trong 2 sheet Switching và Enfa, tức là những data còn lại sau khi lọc switching và enfa thì làm sao ? Mình biết là so sánh 2 số thứ tự của sheet tổng với từng sheet, cái nào khác thì lấy, nhưng khi mình code thì nó toàn lấy 1 dữ liệu KH
 
Upvote 0
Cùng 1 file đó nhưng giờ mình mún lấy những data không có trong 2 sheet Switching và Enfa, tức là những data còn lại sau khi lọc switching và enfa thì làm sao ? Mình biết là so sánh 2 số thứ tự của sheet tổng với từng sheet, cái nào khác thì lấy, nhưng khi mình code thì nó toàn lấy 1 dữ liệu KH

Lợi dụng code đã có ta điều chỉnh "lưới" lọc 1 chút, bạn kiểm tra giùm nha

Mã:
Sub KHNone()
Dim Tm1, Tm2, Kq(), i, j, n, m
Tm1 = Sheet1.Range("A7:BI" & Sheet1.[A65536].End(3).Row)
Tm2 = Sheet4.Range("A7:C" & Sheet4.[A65536].End(3).Row)
ReDim Kq(1 To UBound(Tm1, 1), 1 To 61)
For i = 1 To UBound(Tm2, 1)
For j = 1 To UBound(Tm1, 1)
If Tm1(j, 4) = Tm2(i, 1) And Tm1(j, 5) = Tm2(i, 2) And Tm1(j, 61) = 0 Then
 Tm2(i, 3) = Tm2(i, 3) - 1
If Tm2(i, 3) < 0 Then
n = n + 1
For m = 2 To 61
Kq(n, m) = Tm1(j, m)
Next m
Kq(n, 1) = n
End If
End If
Next j
Next i
Sheet5.[A7:BI65536].ClearContents
Sheet5.[A7].Resize(n, 61) = Kq
End Sub
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom