hungndcbq1
phonglan
- Tham gia
- 1/4/19
- Bài viết
- 61
- Được thích
- 7
- Giới tính
- Nam
Em không hiểu ạ, xin tạo code giúp em được không ạ! Em cảm ơn nhiều ạ!Mình xin hướng dẫn chủ bài đăng các bước thực hiện bỡi VBA, nha:
B1: Xác định vùng (Range) cần tìm (số thiếu)
B2: Xác định trị MIN & MAX (của vùng) bằng hàm (Min() hay MAX()) tương ứng.
B3: Tạo vòng lặp duyệt tìm lần lượt các trị từ Min đến Max
BC: Trị nào không được tìm thấy là trị đang thiếu
Chúc bạn thành công!
Sub TimCacSoThieu()
Dim SoCot As Integer, J As Long, Dm As Integer, Max_ As Integer, Min_ As Integer
Dim Rng As Range, sRng As Range, WF As Object
SoCot = Sheets("A4").UsedRange.Columns.Count
Set WF = Application.WorksheetFunction
For J = 3 To [M3].End(xlDown).Row 'Duyêt Theo Dòng '
Dim sKQ As String
Set Rng = Range(Cells(J, "N"), Cells(J, SoCot).End(xlToLeft))
Min_ = WF.Min(Rng): Max_ = WF.Max(Rng)
For Dm = Min_ To Max_
Set sRng = Rng.Find(Dm, , xlFormulas, xlWhole)
If sRng Is Nothing Then
sKQ = Str(Dm) & "," & sKQ
End If
If Len(sKQ) Then Cells(J, "I").Value = sKQ
Next Dm
Next J
End Sub
Vote cho bác 1 phiếu vì bác viết code để ... tác giả lên hỏi lại.PHP:Sub TimCacSoThieu() Dim SoCot As Integer, J As Long, Dm As Integer, Max_ As Integer, Min_ As Integer Dim Rng As Range, sRng As Range, WF As Object SoCot = Sheets("A4").UsedRange.Columns.Count Set WF = Application.WorksheetFunction For J = 3 To [M3].End(xlDown).Row 'Duyêt Theo Dòng ' Dim sKQ As String Set Rng = Range(Cells(J, "N"), Cells(J, SoCot).End(xlToLeft)) Min_ = WF.Min(Rng): Max_ = WF.Max(Rng) For Dm = Min_ To Max_ Set sRng = Rng.Find(Dm, , xlFormulas, xlWhole) If sRng Is Nothing Then sKQ = Str(Dm) & "," & sKQ End If If Len(sKQ) Then Cells(J, "I").Value = sKQ Next Dm Next J End Sub
Thử xem công thức này xem sao :Trong vùng n đến dd phải có số chạy từ giá trị (nguyên dương) từ min đến giá trị max, nếu không như vây là bị thiếu, ví dụ hàng 11 thiếu số 33. Làm sao để tìm được số 33 trên ạ? Em cảm ơn ạ!
Em cảm ơn nhiều ạ!PHP:Sub TimCacSoThieu() Dim SoCot As Integer, J As Long, Dm As Integer, Max_ As Integer, Min_ As Integer Dim Rng As Range, sRng As Range, WF As Object SoCot = Sheets("A4").UsedRange.Columns.Count Set WF = Application.WorksheetFunction For J = 3 To [M3].End(xlDown).Row 'Duyêt Theo Dòng ' Dim sKQ As String Set Rng = Range(Cells(J, "N"), Cells(J, SoCot).End(xlToLeft)) Min_ = WF.Min(Rng): Max_ = WF.Max(Rng) For Dm = Min_ To Max_ Set sRng = Rng.Find(Dm, , xlFormulas, xlWhole) If sRng Is Nothing Then sKQ = Str(Dm) & "," & sKQ End If If Len(sKQ) Then Cells(J, "I").Value = sKQ Next Dm Next J End Sub
Em cảm ơn nhiều ạ!Vote cho bác 1 phiếu vì bác viết code để ... tác giả lên hỏi lại.
Min và Max có sẵn ở cột J và KPHP:Min_ = WF.Min(Rng): Max_ = WF.Max(Rng)
Tuy nhiên nó không phải là do hàm tương ứng đem lại;Min và Max có sẵn ở cột J và K
Anh nói hơi ngược. Nếu min 1, max 10, mà lại thiếu 10, code anh tính ra max = 9, anh đi tìm thì đâu biết đang thiếu con 10?Tuy nhiên nó không phải là do hàm tương ứng đem lại;
Nên chắc cú là không dựa vô nó.
Dựa vô nó bị ăn chưỡi có khi!
Em chưa hiểu dùng như thế nào ạ, em nhờ hướng dẫn em kĩ hơn ạ, e cảm ơn nhiềuPHP:Sub TimCacSoThieu() Dim SoCot As Integer, J As Long, Dm As Integer, Max_ As Integer, Min_ As Integer Dim Rng As Range, sRng As Range, WF As Object SoCot = Sheets("A4").UsedRange.Columns.Count Set WF = Application.WorksheetFunction For J = 3 To [M3].End(xlDown).Row 'Duyêt Theo Dòng ' Dim sKQ As String Set Rng = Range(Cells(J, "N"), Cells(J, SoCot).End(xlToLeft)) Min_ = WF.Min(Rng): Max_ = WF.Max(Rng) For Dm = Min_ To Max_ Set sRng = Rng.Find(Dm, , xlFormulas, xlWhole) If sRng Is Nothing Then sKQ = Str(Dm) & "," & sKQ End If If Len(sKQ) Then Cells(J, "I").Value = sKQ Next Dm Next J End Sub
Ở đây mình đang lấy min=1, bạn xem thử áp dụng được không nhé.Trong vùng n đến dd phải có số chạy từ giá trị (nguyên dương) từ min đến giá trị max, nếu không như vây là bị thiếu, ví dụ hàng 11 thiếu số 33. Làm sao để tìm được số 33 trên ạ? Em cảm ơn ạ!
=IFERROR(SMALL(IF(COUNTIF($N3:$DD3; COLUMN(INDIRECT("r1c1:r1c"&$K3;0)))=0;COLUMN(INDIRECT("r1c1:r1c"&$K3;0));"");COLUMN(A1));"")