Hỏi về chương trình VBA giữ lại những dòng có số thứ tự định sẵn và xóa những dòng còn lại

Liên hệ QC

lucifer1985

Thành viên mới
Tham gia
27/2/20
Bài viết
16
Được thích
0
Gửi ace mình có một file ecxcel dữ liệu có mẫu sẵn có những dòng có số thứ tự định sẵn để giữ lại ví dụ (1, 3, 6, 8, 9 ,14 ...) anh em cho chỉ cho mình chương trình VBA xóa tự động những dòng dữ liệu khác chỉ giữ lại những dòng dữ liệu này mình ko rành lắm về VBA. Mình xin cảm ơn .
 
Gửi ace mình có một file ecxcel dữ liệu có mẫu sẵn có những dòng có số thứ tự định sẵn để giữ lại ví dụ (1, 3, 6, 8, 9 ,14 ...) anh em cho chỉ cho mình chương trình VBA xóa tự động những dòng dữ liệu khác chỉ giữ lại những dòng dữ liệu này mình ko rành lắm về VBA. Mình xin cảm ơn .
Gửi cái file mẫu lên xem nào.
 
Upvote 0
ok bác. Đây bác ơi giả sử em định sẵn giữ lại các dòng (15,16,20,25,30,31) các dòng còn lại xóa hết bác giúp em cái
 

File đính kèm

  • FILE DATA - CTI.xlsx
    13.7 KB · Đọc: 12
Upvote 0
Có 2 cách xóa, bác xem mong muốn kết quả như hình 1 hay hình 2
1652780684036.png1652780698510.png
 
Upvote 0
Bác xem file đính kèm nhé
 

File đính kèm

  • FILE DATA - CTI.xlsb
    27.4 KB · Đọc: 6
Upvote 0
Chủ bài đăng tham khảo thử, hợp thì xin mời mại zô:
PHP:
Sub DeleteRows()
 Dim StrC As String, sDR As String:         Const FC As String = ";"
 Dim Rws As Long, J As Long:                Dim dRng As Range
 
 Rws = [B2].CurrentRegion.Rows.Count
 StrC = InputBox("Hay Nhâp Các Dòng Cân Thiêt: ", "5;7;. . . ;", "13;17;")
 For J = 1 To Rws
    sDR = CStr(J) & FC
    If InStr(StrC, sDR) Then
    Else
        If dRng Is Nothing Then
            Set dRng = Rows(J & ":" & J)
        Else
            Set dRng = Union(dRng, Rows(J & ":" & J))
        End If
    End If
 Next J
 MsgBox dRng.Address
 'dRng.Delete       '
End Sub
 
Upvote 0
Bác xem file đính kèm nhé

Chủ bài đăng tham khảo thử, hợp thì xin mời mại zô:
PHP:
Sub DeleteRows()
 Dim StrC As String, sDR As String:         Const FC As String = ";"
 Dim Rws As Long, J As Long:                Dim dRng As Range
 
 Rws = [B2].CurrentRegion.Rows.Count
 StrC = InputBox("Hay Nhâp Các Dòng Cân Thiêt: ", "5;7;. . . ;", "13;17;")
 For J = 1 To Rws
    sDR = CStr(J) & FC
    If InStr(StrC, sDR) Then
    Else
        If dRng Is Nothing Then
            Set dRng = Rows(J & ":" & J)
        Else
            Set dRng = Union(dRng, Rows(J & ":" & J))
        End If
    End If
 Next J
 MsgBox dRng.Address
 'dRng.Delete       '
End Sub
cảm ơn bạn nhé mình mới tìm hiểu VBA còn gà lắm
 
Upvote 0
Chủ bài đăng tham khảo thử, hợp thì xin mời mại zô:
PHP:
Sub DeleteRows()
 Dim StrC As String, sDR As String:         Const FC As String = ";"
 Dim Rws As Long, J As Long:                Dim dRng As Range
 
 Rws = [B2].CurrentRegion.Rows.Count
 StrC = InputBox("Hay Nhâp Các Dòng Cân Thiêt: ", "5;7;. . . ;", "13;17;")
 For J = 1 To Rws
    sDR = CStr(J) & FC
    If InStr(StrC, sDR) Then
    Else
        If dRng Is Nothing Then
            Set dRng = Rows(J & ":" & J)
        Else
            Set dRng = Union(dRng, Rows(J & ":" & J))
        End If
    End If
 Next J
 MsgBox dRng.Address
 'dRng.Delete       '
End Sub
hic em vẫn ko xài đc bác ạ thank các bác em đành xài tính năng record vậy
 
Upvote 0
Sheet1, bạn gõ danh sách các dòng cần giữ tại ô L2 như hình rồi ấn nút chạy và xem sheet Kết quả là được mà ta? Chưa hiểu bạn gặp khó chỗ nào ấy
Còn không bạn ấn nút CHẠY 2 bên dưới nhận thông tin từ Inputbox xem cách nào tiện hơn thì làm thôi.
1652842857762.png
 

File đính kèm

  • FILE DATA - CTI.xlsb
    29 KB · Đọc: 2
Upvote 0
Chủ bài đăng tham khảo thử, hợp thì xin mời mại zô:
PHP:
... StrC = InputBox("Hay Nhâp Các Dòng Cân Thiêt: ", "5;7;. . . ;", "13;17;")
 For J = 1 To Rws
    sDR = CStr(J) & FC
    If InStr(StrC, sDR) Then
 ...
Code không đúng. Dùng instr thì phải delimit cả hai đầu: sDR = FC & CStr(J) & FC

StrC = ";5;7;13;17;"
J = 3: sDR = "3;": InStr(";5;7;13;17;", "3;" ) = 6

If dRng Is Nothing Then
Set dRng = Rows(J & ":" & J)
Else
Set dRng = Union(dRng, Rows(J & ":" & J))
End If
Rows(J) là đủ rồi. Dùng chỉ số nhanh và gọn hơn dùng string (tên/địa chỉ của range trong collection Rows)
 
Upvote 0
Web KT

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

Back
Top Bottom