Biến của vòng lập trong Evaluate (1 người xem)

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

Junior Skywalker

Thành viên mới
Tham gia
24/9/11
Bài viết
7
Được thích
0
Mình có cột A là cột chứa ngày tháng năm

Sử dụng đoạn code sau để đếm có bao nhiêu dòng chứa tháng 01

dem_so_dong_thang = Evaluate("=SUMPRODUCT(--(TEXT(Sheet1!A2:A2000,""mm/yyyy"")=""01/2014""))")

Thì trả về kết quả đúng.

Sau đó mình bỏ vào vòng lập để đếm hết 12 tháng

For i = 1 To 12


thang = Format(i, "00") ' Doi so thanh 2 chu so co so 0 phia truoc


dem_so_dong_thang = Evaluate("=SUMPRODUCT(--(TEXT(Sheet1!A2:A2000,""mm/yyyy"")=""thang/2014""))")


Next

Với đoạn code này thì kết quả lại trả về bằng 0

Xin giúp đỡ code sai chỗ nào? Và sửa ra sao để đếm trả về đúng kết quả của cả 12 tháng.

Cám ơn các bạn nhiều.
 

File đính kèm

Mình có cột A là cột chứa ngày tháng năm

Sử dụng đoạn code sau để đếm có bao nhiêu dòng chứa tháng 01

dem_so_dong_thang = Evaluate("=SUMPRODUCT(--(TEXT(Sheet1!A2:A2000,""mm/yyyy"")=""01/2014""))")

Thì trả về kết quả đúng.

Sau đó mình bỏ vào vòng lập để đếm hết 12 tháng

For i = 1 To 12


thang = Format(i, "00") ' Doi so thanh 2 chu so co so 0 phia truoc


dem_so_dong_thang = Evaluate("=SUMPRODUCT(--(TEXT(Sheet1!A2:A2000,""mm/yyyy"")=""thang/2014""))")


Next

Với đoạn code này thì kết quả lại trả về bằng 0

Xin giúp đỡ code sai chỗ nào? Và sửa ra sao để đếm trả về đúng kết quả của cả 12 tháng.

Cám ơn các bạn nhiều.
thang là biến nên khi bạn đưa vào cặp nháy kép ("") thì code sẽ hiểu là chuỗi. Vì vậy bạn phải ghép chuỗi như thế này:
PHP:
dem_so_dong_thang = Evaluate("=SUMPRODUCT(--(TEXT(Sheet1!A2:A2000,""mm/yyyy"")=""" & thang & "/2014""))")
 
Upvote 0
Mình có cột A là cột chứa ngày tháng năm

Sử dụng đoạn code sau để đếm có bao nhiêu dòng chứa tháng 01

dem_so_dong_thang = Evaluate("=SUMPRODUCT(--(TEXT(Sheet1!A2:A2000,""mm/yyyy"")=""01/2014""))")

Thì trả về kết quả đúng.

Sau đó mình bỏ vào vòng lập để đếm hết 12 tháng

For i = 1 To 12


thang = Format(i, "00") ' Doi so thanh 2 chu so co so 0 phia truoc


dem_so_dong_thang = Evaluate("=SUMPRODUCT(--(TEXT(Sheet1!A2:A2000,""mm/yyyy"")=""thang/2014""))")


Next

Với đoạn code này thì kết quả lại trả về bằng 0

Xin giúp đỡ code sai chỗ nào? Và sửa ra sao để đếm trả về đúng kết quả của cả 12 tháng.

Cám ơn các bạn nhiều.

Sai cả thúng luôn
Vầy mới đúng:
Mã:
Sub tam()
  [COLOR=#0000cd]Dim i As Long, dem_so_dong_thang As Long
  Dim thang As String[/COLOR]
  For i = 1 To 12
    thang = Format(i, "00")
    dem_so_dong_thang =[COLOR=#ff0000] dem_so_dong_thang +[/COLOR] Evaluate("=SUMPRODUCT(--(TEXT(Sheet1!A2:A2000,""mm/yyyy"")=[COLOR=#ff0000]""" & thang & "/2014""[/COLOR]))")
  Next
  MsgBox dem_so_dong_thang
End Sub
Chỗ màu đỏ là chỗ thêm vào
Chỗ màu xanh có thể bạn không cần nhưng tôi đề nghị nên có (khai báo biến tường minh)
------------------------------
Bạn đếm cả 12 tháng trong năm 2014 thì đâu cần vòng lập nhỉ? Vầy cũng được vậy:
Mã:
Sub tam()
  Dim dem_so_dong_thang As Long
  dem_so_dong_thang =  Evaluate("=SUMPRODUCT(--([COLOR=#ff0000]YEAR(A2:A2000)=2014[/COLOR]))")
  MsgBox dem_so_dong_thang
End Sub
 
Upvote 0
Mình có cột A là cột chứa ngày tháng năm

Sử dụng đoạn code sau để đếm có bao nhiêu dòng chứa tháng 01

dem_so_dong_thang = Evaluate("=SUMPRODUCT(--(TEXT(Sheet1!A2:A2000,""mm/yyyy"")=""01/2014""))")

Thì trả về kết quả đúng.

Sau đó mình bỏ vào vòng lập để đếm hết 12 tháng

For i = 1 To 12


thang = Format(i, "00") ' Doi so thanh 2 chu so co so 0 phia truoc


dem_so_dong_thang = Evaluate("=SUMPRODUCT(--(TEXT(Sheet1!A2:A2000,""mm/yyyy"")=""thang/2014""))")


Next

Với đoạn code này thì kết quả lại trả về bằng 0

Xin giúp đỡ code sai chỗ nào? Và sửa ra sao để đếm trả về đúng kết quả của cả 12 tháng.

Cám ơn các bạn nhiều.

Mã:
For i = 1 To 12
thang = Format(i, "00")
dem_so_dong_thang = Evaluate("=SUMPRODUCT(--(TEXT(Sheet1!A2:A2000,""mm/yyyy"")=[COLOR=#ff0000]""" & thang & "/2014"")[/COLOR])")
Debug.Print dem_so_dong_thang
Next
 
Upvote 0

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

Back
Top Bottom