DÒ tìm những cây có chiều dài không đúng quy cách

Liên hệ QC

donhungtin2013

Thành viên mới
Tham gia
14/8/14
Bài viết
171
Được thích
4
Trong file đính kèm em muốn tìm những cây có chiều dài lẻ (theo quy ước những cây có chiều dài tận cùng bằng 000 (3 số 0) là những cây có chiêù dài chẵn ngược lại là lẻ), làm thế nào khi mình gõ những cây <>000 trong sheet dò tìm nó sẽ xuất hiện tất cả những cây có chiều dài lẻ để mình kiểm tra, nhờ anh em diễn đàn giúp em với. Em cảm ơn nhiều
 

File đính kèm

Trong file đính kèm em muốn tìm những cây có chiều dài lẻ (theo quy ước những cây có chiều dài tận cùng bằng 000 (3 số 0) là những cây có chiêù dài chẵn ngược lại là lẻ), làm thế nào khi mình gõ những cây <>000 trong sheet dò tìm nó sẽ xuất hiện tất cả những cây có chiều dài lẻ để mình kiểm tra, nhờ anh em diễn đàn giúp em với. Em cảm ơn nhiều

dò trên tất cả các sheet hả?
bạn có tổng cộng bao nhiêu sheet?
quy luật đánh số ở các sheet ra sao?
nói chung cthuc thi khó ăn lắm (tôi ko dám nói là ko làm được, vì trên này nhiều cao thủ lắm...hihihih), tôi thì kêu là = cthuc thi potay rồi
 
dò trên tất cả các sheet hả?
bạn có tổng cộng bao nhiêu sheet?
quy luật đánh số ở các sheet ra sao?
nói chung cthuc thi khó ăn lắm (tôi ko dám nói là ko làm được, vì trên này nhiều cao thủ lắm...hihihih), tôi thì kêu là = cthuc thi potay rồi

Dò trên tất cả các sheet anh à, em có tổng cộng 30 sheet nhưng 3 sheet giả định này là cũng được rồi, tất cả các sheet cấu trúc giống nhau anh dùng công thức hay VBA cũng được miễn sao ra kết quả đúng là OK rồi.
 
DÙng VBA cũng được anh à

Mã:
Sub dotim()
Dim arr, kq(1 To 1000, 1 To 5) As Variant, i, j, k As Long, ws As Worksheet
For Each ws In Worksheets
With ws
If .Name <> "do tim" Then
    arr = Range(.[B5], .[b60000].End(3)).Resize(, 6).Value
    For i = 1 To UBound(arr)
        If arr(i, 3) <> "" Then
            If arr(i, 3) Mod 2 > 0 And arr(i, 3) Mod 5 > 0 Then
                k = k + 1
                For j = 1 To 5
                    If j = 1 Then
                        kq(k, j) = arr(i, j)
                    Else
                        kq(k, j) = arr(i, j + 1)
                    End If
                Next j
            End If
        End If
    Next i
End If
End With
Next
With Sheets("do tim")
.[c6:g1000].Clear
.[c6].Resize(k, 5) = kq
.[c6].Resize(k, 5).Borders.Weight = xlThin
End With
End Sub
 

File đính kèm

Trong file đính kèm em muốn tìm những cây có chiều dài lẻ (theo quy ước những cây có chiều dài tận cùng bằng 000 (3 số 0) là những cây có chiêù dài chẵn ngược lại là lẻ), làm thế nào khi mình gõ những cây <>000 trong sheet dò tìm nó sẽ xuất hiện tất cả những cây có chiều dài lẻ để mình kiểm tra, nhờ anh em diễn đàn giúp em với. Em cảm ơn nhiều

G2 trong sheet "do tim" có tham gia tính toán gì không?
Tức là lọc toàn bộ các cây lẻ hay là các cây có chiều dài =G2
 
LỌc toàn bộ những cây có chiều dài lẻ bạn à (nghĩa là những cây <>000)
Vậy là coi G2 sheet "do tim" không tham gia tính toán

Mã:
Public Sub TongHopTK()
Dim DL, Ws As Worksheet, kq(1 To 1000000, 1 To 5), r As Long, i

For Each Ws In Worksheets
If Ws.Name <> "do tim" Then
DL = Ws.UsedRange

For r = 4 To UBound(DL)
If DL(r, 3) <> "" And DL(r, 3) Mod 1000 <> 0 Then    'Sửa thành mod 1000 cho sát với yêu cầu (3 số 0 )
i = i + 1
kq(i, 1) = DL(r, 1): kq(i, 2) = DL(r, 3): kq(i, 3) = DL(r, 4)
kq(i, 4) = DL(r, 5): kq(i, 5) = DL(r, 6)
End If
Next r
End If
Next Ws

Sheets("do tim").Range("C6", Sheets("do tim").Range("G1000000").End(xlUp)).ClearContents
Sheets("do tim").Range("C6").Resize(i, 5) = kq
End Sub
 
Lần chỉnh sửa cuối:
Vậy là coi G2 sheet "do tim" không tham gia tính toán

Mã:
Public Sub TongHopTK()
Dim DL, Ws As Worksheet, kq(1 To 1000000, 1 To 5), r As Long, i

For Each Ws In Worksheets
If Ws.Name <> "do tim" Then
DL = Ws.UsedRange

For r = 4 To UBound(DL)
If DL(r, 3) <> "" And DL(r, 3) Mod 1000 <> 0 Then    'Sửa thành mod 1000 cho sát với yêu cầu (3 số 0 )
i = i + 1
kq(i, 1) = DL(r, 1): kq(i, 2) = DL(r, 3): kq(i, 3) = DL(r, 4)
kq(i, 4) = DL(r, 5): kq(i, 5) = DL(r, 6)
End If
Next r
End If
Next Ws

Sheets("do tim").Range("C6", Sheets("do tim").Range("G1000000").End(xlUp)).ClearContents
Sheets("do tim").Range("C6").Resize(i, 5) = kq
End Sub

định vào bắt bí cái dzụ mod 10, thì đã sửa rồi....hhihihi
 
Web KT

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

Back
Top Bottom