Nhờ code giúp đoạn này - lựa chọn hàng để xóa (1 người xem)

  • Thread starter Thread starter tamthat
  • Ngày gửi Ngày gửi
Liên hệ QC

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

tamthat

Thành viên hoạt động
Tham gia
25/7/07
Bài viết
173
Được thích
83
Giới tính
Nam
Nghề nghiệp
Human
Em mới tiếp cận đến VBA. Em hỏi 1 vấn đề này, mong các anh chị code giúp.Em có một bảng số liệu, Em muốn chọn từ hàng số 9 đến hàng trước có chữ "Tổng cộng" (chữ tổng cộng nằm trong cột B). Anh chị code giúp em với. Ví dụ ô có chứa chữ "Tổng cộng" là ô B135, em muốn xóa hết dòng từ dòng 9 đến dòng 134. Tuy nhiên giá trị 135 không phải cố định, nó phụ thuộc vào chữ "Tổng cộng" đang nằm ở đâu trong cột B. Trước đó em đã autofillter để chọn ra những dòng cần xóa rồi. Em muốn ghi lại thành vba để lần sau đỡ phải thủ công lại. Nhưng đến đoạn chọn xóa, nó lại gán luôn giá trị cố định là rows("9:134"). hjc.
 
Em mới tiếp cận đến VBA. Em hỏi 1 vấn đề này, mong các anh chị code giúp.Em có một bảng số liệu, Em muốn chọn từ hàng số 9 đến hàng trước có chữ "Tổng cộng" (chữ tổng cộng nằm trong cột B). Anh chị code giúp em với. Ví dụ ô có chứa chữ "Tổng cộng" là ô B135, em muốn xóa hết dòng từ dòng 9 đến dòng 134. Tuy nhiên giá trị 135 không phải cố định, nó phụ thuộc vào chữ "Tổng cộng" đang nằm ở đâu trong cột B. Trước đó em đã autofillter để chọn ra những dòng cần xóa rồi. Em muốn ghi lại thành vba để lần sau đỡ phải thủ công lại. Nhưng đến đoạn chọn xóa, nó lại gán luôn giá trị cố định là rows("9:134"). hjc.
Tham khảo đoạn code này xem:
Mã:
Sub GPE_DelRow()
Dim FindTC As Range, Txt As String
Txt = "T" & ChrW(7893) & "ng c" & ChrW(7897) & "ng"
Set FindTC = Sheet1.Range("B9:B1000").Find(Txt, , , , 1)
If Not FindTC Is Nothing Then
    If FindTC.Row > 9 Then
        Sheet1.Rows(9 & ":" & FindTC.Row - 1).EntireRow.Delete
    End If
End If
End Sub
 
Upvote 0
Nếu không thích dùng hàm Find như #2 thì dùng hàm Match cũng được bạn nhé
Mã:
Sub Del()
      Dim var As Variant
      var = Application.Match("T" & ChrW(7893) & "ng c" & ChrW(7897) & "ng", Sheet1.Columns(2), 0)
      If IsError(var) Then
            CreateObject("WScript.Shell").Popup "Không tìm th" & ChrW(7845) & "y ch" & ChrW(7919) & ": " & "T" & ChrW(7893) & "ng c" & ChrW(7897) & "ng", , "Thông Báo", 16
      Else
            Sheet1.Rows(9 & ":" & var - 1).EntireRow.Delete
      End If
End Sub
 
Upvote 0
Em mới tiếp cận đến VBA. Em hỏi 1 vấn đề này, mong các anh chị code giúp.Em có một bảng số liệu, Em muốn chọn từ hàng số 9 đến hàng trước có chữ "Tổng cộng" (chữ tổng cộng nằm trong cột B). Anh chị code giúp em với. Ví dụ ô có chứa chữ "Tổng cộng" là ô B135, em muốn xóa hết dòng từ dòng 9 đến dòng 134. Tuy nhiên giá trị 135 không phải cố định, nó phụ thuộc vào chữ "Tổng cộng" đang nằm ở đâu trong cột B. Trước đó em đã autofillter để chọn ra những dòng cần xóa rồi. Em muốn ghi lại thành vba để lần sau đỡ phải thủ công lại. Nhưng đến đoạn chọn xóa, nó lại gán luôn giá trị cố định là rows("9:134"). hjc.
Bạn gửi File lên xem sao, dùng mảng có thể xóa được, sẽ cho tốc độ nhanh nếu dữ liệu của bạn lớn.
 
Upvote 0
Ôi em cảm ơn mọi người. Hj, hì hụi mãi em cũng ra một cách nữa, cảm ơn mọi người rất nhiều ạ. Em làm được rồi. Học cái này nhiều lúc vui phết. ^^
 
Upvote 0
Web KT

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

Back
Top Bottom