bluecat
Thành viên mới
- Tham gia
- 7/10/06
- Bài viết
- 37
- Được thích
- 1
PHP:
Public Function DemDoanNoLienTuc(MyRng As Range, chieudai_lientuc As Long, DK2 As String, Hang_Cot As Long, chieudai_nolientuc As Long) As Long
' dung dem trng 1 rng co bao nhieu chieudai_nolientuc
'chieudai_nolientuc o day la do dai toi thieu cua 1 doan khong xh cac so lien tiep co DK, co the tu do chon lua chieudai_nolientuc
Dim i As Long, BD As Long, gioihan As Long, solan As Long
Dim hang As Long, cot As Long, dem As Long
Select Case Hang_Cot
Case 1: If MyRng.Columns.Count <> 1 Then Exit Function
gioihan = MyRng.Rows.Count
hang = chieudai_lientuc
cot = 1
Case 2: If MyRng.Rows.Count <> 1 Then Exit Function
gioihan = MyRng.Columns.Count
cot = chieudai_lientuc
hang = 1
End Select
For i = 1 To gioihan '- (chieudai_lientuc - 1)
dem = Application.WorksheetFunction.CountIf(MyRng(i).Resize(hang, cot), DK2)
If dem > 0 Then
BD = BD + 1
If BD > chieudai_nolientuc - 1 Then
solan = solan + 1
DemDoanNoLienTuc = solan
BD = 0
End If
ElseIf dem = 0 Then
i = i + chieudai_lientuc - 1
BD = 0
End If
If BD > chieudai_nolientuc - 1 Then DemDoanNoLienTuc = solan + 1
' MsgBox "i = " & i & Chr(10) & "dem = " & dem & Chr(10) & "BD = " & BD & "(> 4)" & Chr(10) & "DemDoan = " & solan
Next
End Function
Xin GPE giúp tôi viết lại hàm trên cho đúng hoặc chỉ cho tôi một giải thuật khác.
File đính kèm
Lần chỉnh sửa cuối: