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 

Leave a Comment