Các câu hỏi về mảng trong VBA (Array)

Liên hệ QC

viehoai

Thành viên gắn bó
Tham gia
22/5/09
Bài viết
2,599
Được thích
2,908
Xin các anh chị giúp đỡ Code Gán các giá trị của một Range là các phần tử của Mãng
Ví dụ: Tôi có các giá trị của Range("A1:A10"). Tôi muốn viết code để gán giá trị của các cells từ A1:A10 là các phần tử của Mãng Arr chẳn hạn.
Xin cảm ơn các anh chị
 
Chèn mãng vào mãngGiả sửa tôi có 2 mãng như file đính kèmKính nhờ các anh chi thuật toán (hoặc có code luôn càng tốt) để chèn 1 mãng thứ 2 vào mãng thứ nhất theo 1 điều kiệnXin cảm ơn các anh chị
Có phải là gặp cột A có chữ "a" thì gán mảng 2 vào.
Dễ mà, VietHoai tự làm thử.
PHP:
Sub TaoKQ()
Dim i&, j&, k&, s&
Dim Arr01, Arr02, ArrKQ
Arr01 = Range("A2:D10").Value
Arr02 = Range("H2:K6").Value
ReDim ArrKQ(1 To 5000, 1 To UBound(Arr01, 2))
For i = 1 To UBound(Arr01, 1)
  If Arr01(i, 1) <> "a" Then
    s = s + 1
    For k = 1 To UBound(Arr01, 2)
      ArrKQ(s, k) = Arr01(i, k)
    Next k
  Else
    For j = 1 To UBound(Arr02, 1)
      s = s + 1
      For k = 1 To UBound(Arr01, 2)
        ArrKQ(s, k) = Arr02(j, k)
      Next k
    Next j
  End If
Next i
Range("F18").Resize(s, k - 1) = ArrKQ
Erase Arr01, Arr02, ArrKQ
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Sao kg chèn vào Arr (KQ) 1 lần sau đó gán xuống sh.
PHP:
Sub Chendong2()
Dim DL, i As Long, s&
Dim KQ
DL = Range([A1], [A65000].End(xlUp)).Value
ReDim KQ(1 To UBound(DL, 1) * 2, 1 To 1)
For i = 1 To UBound(DL, 1)
  s = s + 1
  KQ(s, 1) = DL(i, 1)
  If DL(i, 1) <> "" Then
    s = s + 1
    KQ(s, 1) = ""
  End If
Next
Cells(1, 1).Resize(s) = KQ
End Sub
Ah... ha!
Nếu vùng DL có công thức thì cách này không xong à nghen ---> Dù ta thay .Value thành .Formula cũng... tèo...
Nhớ rằng nếu chèn dòng bằng tay thì các tham chiếu trong công thức tự động "dịch chuyển" theo ---> Làm sao ta làm được điều này trong mảng?
Nói chung, chỉ áp dụng cách này với dữ liệu thô
Ẹc... Ẹc...
 
Upvote 0
Ah... ha!
Nếu vùng DL có công thức thì cách này không xong à nghen ---> Dù ta thay .Value thành .Formula cũng... tèo...
Nhớ rằng nếu chèn dòng bằng tay thì các tham chiếu trong công thức tự động "dịch chuyển" theo ---> Làm sao ta làm được điều này trong mảng?
Nói chung, chỉ áp dụng cách này với dữ liệu thô
Ẹc... Ẹc...

Cách làm của bác Thu Nghi rất hay về mặt thuật toán, sáng tạo nhưng kết quả chỉ đúng khi áp dụng với dữ liệu thô vùng làm việc chỉ là một cột duy nhất (cột A).
 
Upvote 0
Cách làm của bác Thu Nghi rất hay về mặt thuật toán, sáng tạo nhưng kết quả chỉ đúng khi áp dụng với dữ liệu thô vùng làm việc chỉ là một cột duy nhất (cột A).
Công thức như NDU thì xem lại. Còn việc 1 hay > 1 cột cũng vậy thôi.
 
Upvote 0
1.
Có phải là gặp cột A có chữ "a" thì gán mảng 2 vào.
Dễ mà, VietHoai tự làm thử.
PHP:
Sub TaoKQ()
Dim i&, j&, k&, s&
Dim Arr01, Arr02, ArrKQ
Arr01 = Range("A2:D10").Value
Arr02 = Range("H2:K6").Value
ReDim ArrKQ(1 To 5000, 1 To UBound(Arr01, 2))
For i = 1 To UBound(Arr01, 1)
  If Arr01(i, 1) <> "a" Then
    s = s + 1
    For k = 1 To UBound(Arr01, 2)
      ArrKQ(s, k) = Arr01(i, k)
    Next k
  Else
    For j = 1 To UBound(Arr02, 1)
      s = s + 1
      For k = 1 To UBound(Arr01, 2)
        ArrKQ(s, k) = Arr02(j, k)
      Next k
    Next j
  End If
Next i
Range("F18").Resize(s, k - 1) = ArrKQ
Erase Arr01, Arr02, ArrKQ
End Sub
Tôi muốn mãng ArrKQ trở về kích thước của nó tôi dùng
PHP:
ReDim Preserve ArrKQ(1 To s, 1 To 5)
Vì sao nó báo lỗi nhỉ
2. Xin các anh chị giúp đỡ hàm để nối các mãng
Ví dụ tôi có các mãng Arr01, Arr02, Arr03 ...Arr(n) có cùng kích thước ngang. Bây giờ tôi cần hàm cho kết quả là mãng ArrKQ là nối tất cả các mãng đó thành 1 mãng.
Bây giờ tôi áp dụng 3 mãng thì chỉ cần dùng: Ví dụ hàm ArrKQ(Arr01, Arr02, Arr03)
Xin cảm ơn các anh chị
 
Lần chỉnh sửa cuối:
Upvote 0
Xin các anh chị giúp đỡ hàm để nối các mãng
Ví dụ tôi có các mãng Arr01, Arr02, Arr03 ...Arr(n) có cùng kích thước ngang. Bây giờ tôi cần hàm cho kết quả là mãng ArrKQ là nối tất cả các mãng đó thành 1 mãng.
Bây giờ tôi áp dụng 3 mãng thì chỉ cần dùng: Ví dụ hàm ArrKQ(Arr01, Arr02, Arr03)
Xin cảm ơn các anh chị
Hiện tại thì tôi chưa biết có cách nào ngoài cách for từng mảng và gán vào ArrKQ
Lúc đó phải Redim ArrKQ(1 to ubound(Arr01)+ ... +ubound(Arr_n),1 to ubound(Arr01,2))
Thấy có cú pháp CombineArray cũng phải như vậy.
 
Upvote 0
Hiện tại thì tôi chưa biết có cách nào ngoài cách for từng mảng và gán vào ArrKQ
Lúc đó phải Redim ArrKQ(1 to ubound(Arr01)+ ... +ubound(Arr_n),1 to ubound(Arr01,2))
Thấy có cú pháp CombineArray cũng phải như vậy.
Nếu xác định được số mãng thì đơn giản rồi anh à, vấn đề số mãng chưa biết mới là khó đối với em
 
Upvote 0
1.
Tôi muốn mãng ArrKQ trở về kích thước của nó tôi dùng
PHP:
ReDim Preserve ArrKQ(1 To s, 1 To 5)
Vì sao nó báo lỗi nhỉ
2. Xin các anh chị giúp đỡ hàm để nối các mãng
Ví dụ tôi có các mãng Arr01, Arr02, Arr03 ...Arr(n) có cùng kích thước ngang. Bây giờ tôi cần hàm cho kết quả là mãng ArrKQ là nối tất cả các mãng đó thành 1 mãng.
Bây giờ tôi áp dụng 3 mãng thì chỉ cần dùng: Ví dụ hàm ArrKQ(Arr01, Arr02, Arr03)
Xin cảm ơn các anh chị
ReDim Preserve ArrKQ(1 To s, 1 To 5)
Híc, cái thằng ReDim Preserve không cho chơi kiểu đó đâu, nó hổng cho ReDim Preserve theo chiều thứ 1 đâu
Thí dụ:
ReDim Preserve ArrKQ(1 To 5, 1 To s)
thì nó hổng cự nự bạn đâu
Tôi muốn mãng ArrKQ trở về kích thước của nó tôi dùng
Trong bài của bạn có thể khai báo chính xác kích thước mảng ArKQ như sau
SoA = Application.WorksheetFunction.CountIf([A2:A10], "a")
ReDim ArrKQ(1 To SoA * UBound(Arr02) + UBound(Arr01) - SoA, 1 To UBound(Arr01, 2))
Còn câu 2 ....mình hổng hiểu
Thân
Híc
 
Lần chỉnh sửa cuối:
Upvote 1
Híc, cái thằng ReDim Preserve không cho chơi kiểu đó đâu, nó hổng cho ReDim Preserve theo chiều thứ 1 đâuThí dụ:thì nó hổng cự nự bạn đâuTrong bài của bạn có thể khai báo chính xác kích thước mảng ArKQ như sauCòn câu 2 ....mình hổng hiểuThânHíc
Cảm ơn anh rất nhiều
1. Câu 2 ý em cần 1 hàm chung để nối các mãng với nhau theo thứ tự khai báoVí dụ: - Khi em cần nối 3 mãng thì em sử dụng hàm: ArrKQ(Arr01, Arr02, Arr03)
- Khi em cần nối 4 mãng thì em sử dụng hàm: ArrKQ(Arr01, Arr02, Arr03, Arr04) v.v.. (Nối với nhau theo phương dọc, phương ngang các mãng Arr01, Arr02, Arr03,Arr03 ... có cùng kích thước.
2. Xin các anh chị xem 2 file áp dụng code của anh ThuNghi có sử dụng thêm phép tính 1 file bị lỗi trong khi file khác thì khôngVì sao?
Xin cảm ơn các anh chị
 

File đính kèm

  • Tap lam ve Mang.rar
    32.7 KB · Đọc: 31
Lần chỉnh sửa cuối:
Upvote 0
Không hiểu nguyên nhân tại sao Code báo lỗi ở dòng Dic.Add DL(i, 2), j

Tôi đang định thực hành, ôn lại những bài cơ bản ban đầu về Dictionary làm thử bài toán trích lọc doanh số cho vay theo từng Công ty, nhưng không hiểu tại sao Code lại báo lỗi màu vàng ở đoạn Dic.Add DL(i, 2), j, xin được chỉ giúp nguyên nhân.

PHP:
Sub Loc()
Dim DL(), KQ(), i As Long, j As Long
Dongcuoi = [C65000].End(xlUp).Row
DL = Range("A2:C" & Dongcuoi).Value
Set Dic = CreateObject("Scripting.Dictionayr")
ReDim KQ(1 To UBound(DL, 1), 1 To 3)
For i = 1 To UBound(DL, 1)
    If DL(i, 2) = Cells(1, 6) And Not Dic.Exists(DL(i, 1)) Then
        j = j + 1
        Dic.Add DL(i, 2), j
        KQ(j, 1) = DL(i, 1)
        KQ(j, 2) = DL(i, 2)
        KQ(j, 3) = DL(i, 3)
    End If
    If DL(i, 2) = Cells(1, 6) And Dic.Exists(DL(i, 1)) Then
        j = j + 1
        KQ(j, 1) = DL(i, 1)
        KQ(j, 2) = DL(i, 2)
        KQ(j, 3) = DL(i, 3)
    End If
Next
    [E2].Resize(j, 3).Value = KQ
End Sub
 

File đính kèm

  • Luyen tap.xlsx
    9.9 KB · Đọc: 29
Lần chỉnh sửa cuối:
Upvote 0
Bạn sai lỗi là do một mặt bạn check xem key có tồn tại không thì bạn check DL(i,1) trong khi bạn lại add key là DL(i,2) dẫn đến bị trùng key khi add
 
Upvote 0
Tôi đang định thực hành, ôn lại những bài cơ bản ban đầu về Dictionary làm thử bài toán trích lọc doanh số cho vay theo từng Công ty, nhưng không hiểu tại sao Code lại báo lỗi màu vàng ở đoạn Dic.Add DL(i, 2), j, xin được chỉ giúp nguyên nhân.

PHP:
Sub Loc()
Dim DL(), KQ(), i As Long, j As Long
Dongcuoi = [C65000].End(xlUp).Row
DL = Range("A2:C" & Dongcuoi).Value
Set Dic = CreateObject("Scripting.Dictionayr")
ReDim KQ(1 To UBound(DL, 1), 1 To 3)
For i = 1 To UBound(DL, 1)
    If DL(i, 2) = Cells(1, 6) And Not Dic.Exists(DL(i, 1)) Then
        j = j + 1
        Dic.Add DL(i, 2), j
        KQ(j, 1) = DL(i, 1)
        KQ(j, 2) = DL(i, 2)
        KQ(j, 3) = DL(i, 3)
    End If
    If DL(i, 2) = Cells(1, 6) And Dic.Exists(DL(i, 1)) Then
        j = j + 1
        KQ(j, 1) = DL(i, 1)
        KQ(j, 2) = DL(i, 2)
        KQ(j, 3) = DL(i, 3)
    End If
Next
    [E2].Resize(j, 3).Value = KQ
End Sub
Bạn xem chổ này
Mã:
If DL(i, 2) = Cells(1, 6) And Not Dic.Exists([COLOR=#ff0000][B]DL(i, 1)[/B][/COLOR]) Then
        j = j + 1
        Dic.Add [COLOR=#ff0000][B]DL(i, 2)[/B][/COLOR], j
Chổ màu đỏ ấy ---> Chẳng ăn nhập gì nhau cả ---> Đ/k tồn tại là DL(i, 1) mà khi Add lại Add DL(i, 2)
 
Upvote 0
Tôi đã sửa thành:

PHP:
Sub Loc()
Dim DL(), KQ(), i As Long, j As Long
Dongcuoi = [C65000].End(xlUp).Row
DL = Range("A2:C" & Dongcuoi).Value
Set Dic = CreateObject("Scripting.Dictionary")
ReDim KQ(1 To UBound(DL, 1), 1 To 3)
For i = 1 To UBound(DL, 1)
    If DL(i, 2) = Cells(1, 6) And Not Dic.Exists(DL(i, 2)) Then
        j = j + 1
        Dic.Add DL(i, 2), j
        KQ(j, 1) = DL(i, 1)
        KQ(j, 2) = DL(i, 2)
        KQ(j, 3) = DL(i, 3)
    End If
    If DL(i, 2) = Cells(1, 6) And Dic.Exists(DL(i, 2)) Then
        j = j + 1
        KQ(j, 1) = DL(i, 1)
        KQ(j, 2) = DL(i, 2)
        KQ(j, 3) = DL(i, 3)
    End If
Next
    [E2].Resize(j, 3).Value = KQ
End Sub

Kết quả: Chạy ra kết quả thì dòng thứ nhất sao nó lặp 2 lần.
 
Lần chỉnh sửa cuối:
Upvote 0
Tôi sửa được rồi thày ah, cảm ơn thày nhiều

PHP:
Sub Loc()
Dim DL(), KQ(), i As Long, j As Long
Dongcuoi = [C65000].End(xlUp).Row
DL = Range("A2:C" & Dongcuoi).Value
Set Dic = CreateObject("Scripting.Dictionary")
ReDim KQ(1 To UBound(DL, 1), 1 To 3)
For i = 1 To UBound(DL, 1)
    If DL(i, 2) = Cells(1, 6) And Not Dic.Exists(DL(i, 2)) Then
        j = j + 1
        Dic.Add DL(i, 2), j
        KQ(j, 1) = DL(i, 1)
        KQ(j, 2) = DL(i, 2)
        KQ(j, 3) = DL(i, 3)
    End If
    If DL(i, 2) = Cells(1, 6) And Dic.Exists(DL(i, 2)) Then
        j = j + 1
        KQ(j, 1) = DL(i, 1)
        KQ(j, 2) = DL(i, 2)
        KQ(j, 3) = DL(i, 3)
    End If
Next
    [E2].Resize(j, 3).Value = KQ
End Sub
Code mới này không lỗi gì cả! Có điều chẳng hiểu bạn muốn làm gì với code mới này???
Còn code cũ thì sai chữ "Dictionary" (bạn ghi là Dictionayr)
----------------
Kết quả: Chạy ra kết quả thì dòng thứ nhất sao nó lặp 2 lần.
- IF đầu tiên (điều kiện không tồn tại) --> Add vào
- Tiếp cái IF thứ 2 (điều kiện tồn tại) ---> Add vào tiếp
Thế là trùng lặp 2 lần rồi
Hỏi lại: Bạn muốn làm điều gì với file này?
- Lọc với điều kiện = Công ty A chăng?---> Thế thì cần gì đến Dictionary?
- Cộng dồn theo điều kiện Công ty A chăng? ---> Thế thì trong code của bạn không có chổ nào cộng dồn cả?
 
Lần chỉnh sửa cuối:
Upvote 0
Tôi đã sửa thành:

PHP:
Sub Loc()
Dim DL(), KQ(), i As Long, j As Long
Dongcuoi = [C65000].End(xlUp).Row
DL = Range("A2:C" & Dongcuoi).Value
Set Dic = CreateObject("Scripting.Dictionary")
ReDim KQ(1 To UBound(DL, 1), 1 To 3)
For i = 1 To UBound(DL, 1)
    If DL(i, 2) = Cells(1, 6) And Not Dic.Exists(DL(i, 2)) Then
        j = j + 1
        Dic.Add DL(i, 2), j
        KQ(j, 1) = DL(i, 1)
        KQ(j, 2) = DL(i, 2)
        KQ(j, 3) = DL(i, 3)
    End If
    If DL(i, 2) = Cells(1, 6) And Dic.Exists(DL(i, 2)) Then
        j = j + 1
        KQ(j, 1) = DL(i, 1)
        KQ(j, 2) = DL(i, 2)
        KQ(j, 3) = DL(i, 3)
    End If
Next
    [E2].Resize(j, 3).Value = KQ
End Sub

Kết quả: Chạy ra kết quả thì dòng thứ nhất sao nó lặp 2 lần.

Lặp hai lần vì bạn If hai lần, giả sử key chưa tồn tại, vào vòng If thứ nhất sẽ add key đó và nó sẽ trở thành key tồn tại, thế là làm tiếp vòng If thứ hai dẫn đến lặp. Đáng ra bạn phải sửa lại rằng
PHP:
If DL(i, 2) = Cells(1, 6) And Not Dic.Exists(DL(i, 2)) Then
        j = j + 1
        Dic.Add DL(i, 1), j
        KQ(j, 1) = DL(i, 1)
        KQ(j, 2) = DL(i, 2)
        KQ(j, 3) = DL(i, 3)
    ElseIf DL(i, 2) = Cells(1, 6) And Dic.Exists(DL(i, 2)) Then
        j = j + 1
        KQ(j, 1) = DL(i, 1)
        KQ(j, 2) = DL(i, 2)
        KQ(j, 3) = DL(i, 3)
    End If
 
Upvote 0
Tức là tôi trích lọc những dòng mà cột B xuất hiện riêng Công ty A thôi (bảng DL tổng hợp ban đầu bao gồm rất nhiều Công ty). Tuy vậy , thuật toán chưa đúng dẫn đến dòng đầu tiên bị lặp trùng 2 lần, tôi đang tìm nguyên nhân và sửa nó
(Xin gửi file cho mọi người dễ hình dung)
-----------
Cảm ơn thày, lúc vừa gửi lên thì trước đó thày đã giúp cho rồi ah. Trong lúc nghĩ nhờ thày giúp, tôi cũng đã phát hiện được nguyên nhân sai ra khi i=1 dòng thứ nhất thỏa mãn cả 2 lệnh If mà không nghĩ ra được ElseIf.
 

File đính kèm

  • Trich loc.xlsx
    10 KB · Đọc: 43
Lần chỉnh sửa cuối:
Upvote 0
- IF đầu tiên (điều kiện không tồn tại) --> Add vào
- Tiếp cái IF thứ 2 (điều kiện tồn tại) ---> Add vào tiếp
Thế là trùng lặp 2 lần rồi
Hỏi lại: Bạn muốn làm điều gì với file này?
- Lọc với điều kiện = Công ty A chăng?---> Thế thì cần gì đến Dictionary?
- Cộng dồn theo điều kiện Công ty A chăng? ---> Thế thì trong code của bạn không có chổ nào cộng dồn cả?

Ý định của tôi là lọc chứ không cộng dồn thày ah, nhưng If thứ 2 mình có cho nó Add đâu nhỉ?, nó chỉ sai ở chỗ vì nó khoái (thỏa mãn điều kiện) cả 2 anh If tự nhiên j ở câu lệnh thứ 2 lại tiếp tục được tăng thêm 1 đơn vị (1+1=2), tức là riêng dòng đầu được 2 thằng j liền j=1 và j=2?? >> 2 dòng trung nhau thôi chứ thày
 
Lần chỉnh sửa cuối:
Upvote 0
Tức là tôi trích lọc những dòng mà cột B xuất hiện riêng Công ty A thôi (bảng DL tổng hợp ban đầu bao gồm rất nhiều Công ty). Tuy vậy , thuật toán chưa đúng dẫn đến dòng đầu tiên bị lặp trùng 2 lần, tôi đang tìm nguyên nhân và sửa nó
(Xin gửi file cho mọi người dễ hình dung)
-----------
Cảm ơn thày, lúc vừa gửi lên thì trước đó thày đã giúp cho rồi ah. Trong lúc nghĩ nhờ thày giúp, tôi cũng đã phát hiện được nguyên nhân sai ra khi i=1 dòng thứ nhất thỏa mãn cả 2 lệnh If mà không nghĩ ra được ElseIf.
Tức là tìm trong cột B, cái nào = "Công ty A" thì lấy nguyên dòng cho vào mảng KQ, đúng không? Vậy cứ duyệt mảng bình thường, bài toán này chẳng có chổ nào liên quan đến Dictionary cả
Vầy là đủ:
PHP:
Sub Loc()
  Dim DL(), KQ(), i As Long, j As Long
  DL = Range([A2], [C65000].End(xlUp)).Value
  ReDim KQ(1 To UBound(DL, 1), 1 To 3)
  For i = 1 To UBound(DL, 1)
    If DL(i, 2) = Cells(1, 6) Then
      j = j + 1
      KQ(j, 1) = DL(i, 1)
      KQ(j, 2) = DL(i, 2)
      KQ(j, 3) = DL(i, 3)
    End If
  Next
  [E2].Resize(j, 3).Value = KQ
End Sub
 
Upvote 0
Mấy hôm nọ học Dictionary tốc độ nhanh quá (so với khả năng tiếp thu của bản thân) nên chưa kịp nhìn lại, hôm nay rỗi ngồi ôn lại để hình dung ra toàn bộ các bài cơ bản về Dic hôm nọ được thày Ndu hướng dẫn.

Vì đang muốn vận dụng Dic, thay đổi các dạng bài bài toán xoay quanh đến lính vực TỒN TẠI để vận dụng Dic nên không còn đủ tỉnh táo để chợt nhớ ra cách trên của thày hay hơn (máy móc quá)
 
Lần chỉnh sửa cuối:
Upvote 0
Tại sao kết quả tổng hợp sao không cộng thêm những dòng dưới nhỉ

Bài toán Tổng hợp như hình ở dưới, vùng Font chữ màu đen là dữ liệu đầu vào, vùng đỏ là minh họa kết quả sau khi chạy Code. Tuy vậy, kết quả tổng hợp chưa đúng, rất mong được giúp đỡ

Tonghoptheongaythang.png


Code cụ thể nhau sau

PHP:
Sub Tonghop()
Dim DL(), KQ(), i As Long, j As Long, fDate, eDate
Set Dic = CreateObject("Scripting.Dictionary")
DL = Range([A5], [E65000].End(xlUp)).Value
ReDim KQ(1 To UBound(DL, 1), 1 To UBound(DL, 2))
fDate = [H1].Value
eDate = [H2].Value
For i = 1 To UBound(DL, 1) Step 1
    If DL(i, 1) > fDate And DL(i, 1) <= eDate Then
        If Not Dic.Exists(DL(i, 2)) Then
            j = j + 1
            Tmp = DL(i, 2)
            Dic.Add Tmp, j
            KQ(Dic.Item(Tmp), 1) = DL(i, 2)
            KQ(Dic.Item(Tmp), 2) = DL(i, 3)
            KQ(Dic.Item(Tmp), 3) = DL(i, 4)
            KQ(Dic.Item(Tmp), 4) = DL(i, 5)
        ElseIf Dic.Exists(DL(i, 1)) Then
            KQ(Dic.Item(Tmp), 1) = DL(i, 2)
            KQ(Dic.Item(Tmp), 2) = DL(i, 3)
            KQ(Dic.Item(Tmp), 3) = KQ(Dic.Item(Tmp), 3) + DL(i, 4)
            KQ(Dic.Item(Tmp), 4) = KQ(Dic.Item(Tmp), 4) + DL(i, 5)
        End If
    End If
Next
Range("G5").Resize(j, 4).Value = KQ
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom