Mảng trong vba của excel

Sử dụng vòng lặp for để tạo mảng trong vba của excel.
Dưới đây là code xuất giá trị vào một ô có vị trí là dòng thứ (i) và cột thứ (j) trong một sheet của excel
Sử dụng công thức countifs để đếm giá trị thỏa mãn yêu cầu và sau đó xuất giá trị (value) vào vị trí mình muốn.




Sub Macro1()
    
    Dim i As Integer, j As Integer, a As Integer, b As Integer, kq As Integer
    Dim LastRow1 As Long
    Dim LastRow2 As Long
    Dim Macro1 As Integer
    Dim Total As Integer
    LastRow1 = Worksheets("Data").Cells(2, "H").End(xlDown).Row
    LastRow2 = Worksheets("Data").Cells(2, "I").End(xlDown).Row

 ' Tìm vị trí của hàng có chữ Macro1
    Macro1 = Application.Match("Macro1", Worksheets("sheet2").Range("A:A"), 0)
 ' Tìm vị trí của hàng có chữ Total
    Total = Application.Match("TOTAL", Worksheets("sheet2").Range("A:A"), 0)
    
     Application.Interactive = False
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    For i = Macro1 + 1  To Total - 1    ' Chạy vòng lặp từ vị trí đứng dưới chữ Macro đến vị trí đứng trên chữ total
        a = 0
        b = 0
        kq = 0
          For j = 4 To 29
           
            a = Application.CountIfs(Worksheets("Data").Range("H2:H" & LastRow1), Worksheets("sheet2").Range("B" & i), Worksheets("Data").Range("I2:I" & LastRow2), Worksheets("sheet2").Cells(1, j))
            b = Application.CountIfs(Worksheets("Data").Range("H2:H" & LastRow1), Worksheets("sheet2").Range("C" & i), Worksheets("Data").Range("I2:I" & LastRow2), Worksheets("sheet2").Cells(1, j))
            kq = a + b
            Cells(i, j).Value = kq
        Next j
       
    Next i
    
    Application.Interactive = True
    Application.EnableEvents = True
    Application.ScreenUpdating = True
   
End Sub
  • 6: Tìm dòng cuối cùng của cột H bắt đầu từ vị trí thứ 2 trong sheet Data
  • 18: Sử dụng hàm countifs để đếm giá trị của B thỏa mãn điều kiện trong cột H của sheet Data và ô của hàng đầu tiên của sheet2 với cột I của sheet Data
  • 19: Sử dụng hàm countifs để đếm giá trị của C thỏa mãn điều kiện trong cột H của sheet Data và ô của hàng đầu tiên của sheet2 với cột I của sheet Data
  • 21: Xuất giá trị của kq vào ô có vị trí thứ i và thứ j
Những code có ghi chú là để trong trường hợp nếu thêm hàng vào thì code vẫn chạy đúng như mình mong muốn.

Vọc sỹ: Phoenix 

Đăng nhận xét

0 Nhận xét