Xóa 1 dòng có nhiều ô merge

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

Ito

Thành viên mới
Tham gia
29/9/08
Bài viết
6
Được thích
0
Mình mới tham gia diễn đàn không biết post ở đây có đúng không, nhờ Amin chỉ giáo nhé%#^#$
Mình muốn nhờ các bạn chỉ giáo vấn đề sau:
Tại cột số lượng: nếu = 0 thì xóa hẳn dòng ấy đi. nhưng cột A lại có rất nhiều dòng bị merge, nếu xóa dòng ấy đi thì dữ liệu tại cột A cũng bị xóa mất.
Mình có gửi kèm theo file của mình, ai biết cách làm xin chỉ dùm.
Cám ơn rất nhiều./-*+/
 
Bạn nhấn vào nút "Đổi sang khung lớn" mới có tính năng đính kèm file. Còn việc của bạn thì không biết bạn merge như thế nào nên không chắc sẽ xóa được đâu!. Thân.
 
Lần chỉnh sửa cuối:
Không gửi file từ máy được + không xóa được dòng có nhiều ô merge

- mình cũng mới tham gia, cũng đã đọc và làm theo hướng dẫn post bài, muốn att. cái file mà sao hộp thoại "tải file từ máy" nó cứ ì ra, không nhúc nhích gì, vậy là sao? file .rar 38kb thôi.
- tình huống cần hỏi như sau:
cột B có 5 dòng bị merge (dliệu là Mahieu), cột D là cột số lượng, trong đó mình muốn xóa những dòng có sl=0. Nhưng không được, dữ liệu tại cột B bị xóa mất (mahieu) chỉ còn ô trắng.
- nếu att. được cái file lên thì mọi người rõ hơn
Thank mọi người /-*+/
 
Hình như tôi hiểu ý bạn
Bạn xem file này có giống với dử liệu của bạn ko nha, và bạn muốn dòng nào trong cột số lượng có giá trị = 0 thì xóa hết dòng đó nhưng ko dc xóa cột Mã (Xem thử, nếu đúng thì ta bàn tiếp)
 

File đính kèm

Làm thử cho bạn, dựa vào file giã lập ở trên!
PHP:
Sub Xoadong()
  Dim Rng As Range, Clls As Range, iCol As Long, iMerge As Long
  On Error GoTo Thoat
  Set Clls = Application.InputBox("Chon cell chua cot can xoa", Type:=8)
  Set Merge = Application.InputBox("Chon cell co chua Merge cell", Type:=8)
  Set Rng = Clls.CurrentRegion
  iCol = Clls.Column - Rng.Column + 1
  iMerge = Merge.Column - Rng.Column + 1
  For i = Rng.Rows.Count To 1 Step -1
   If Rng(i, iCol) = 0 Then
     Luu = Rng(i, iMerge).Value
     Rng(i, iMerge).EntireRow.Delete
     Rng(i, iMerge).Value = Luu
   End If
  Next
Thoat:   Exit Sub
End Sub
Bấm nút để chạy code và kiểm tra thử xem có chính xác không nha!
Nếu chưa đúng thì.. hỏi tiếp
 

File đính kèm

Cũng ham vui cái

PHP:
Sub DeleteMergeRows()
On Error Resume Next
 Dim mRng As Range, Rng As Range:                          Dim StrC As String
 Dim eRw As Long, Jf As Long, mRw As Long
 
 Sheets("Sheet1").Select:                          eRw = [c65500].End(xlUp).Row
 For Jf = 2 To eRw
   With Cells(Jf, "b")
      If .MergeCells Then
         Set mRng = .MergeArea:              StrC = .MergeArea.Cells(1, 1)
         mRw = .MergeArea.Rows.Count:        .MergeArea.UnMerge
         .Resize(mRw) = StrC
      End If
   End With
 Next Jf
 
 With Sheet1.Range("c2:C" & [C65432].End(xlUp).Row)
   Set Rng = .Find(What:=0, LookIn:=xlValues)
   If Not Rng Is Nothing Then
      Set mRng = Rng:                     StrC = Rng.Address
      Do
         Set mRng = Union(mRng, Rng):     Set Rng = .FindNext(Rng)
      Loop While Not Rng Is Nothing And Rng.Address <> StrC
   End If
   If Not mRng Is Nothing Then mRng.EntireRow.Delete
 End With
 mRw = 0:                                 Set mRng = Nothing

End Sub

Tuy nhiên chưa trả lại nguyên trạng các ô trộn lại như bạn đầu. Mong các bạn tiếp tục phần việc này!!
Xin cảm ơn & . . . .)(&&@@-\\/.@!##
 

File đính kèm

Làm thử cho bạn, dựa vào file giã lập ở trên!
PHP:
Sub Xoadong()
  Dim Rng As Range, Clls As Range, iCol As Long, iMerge As Long
  On Error GoTo Thoat
  Set Clls = Application.InputBox("Chon cell chua cot can xoa", Type:=8)
  Set Merge = Application.InputBox("Chon cell co chua Merge cell", Type:=8)
  Set Rng = Clls.CurrentRegion
  iCol = Clls.Column - Rng.Column + 1
  iMerge = Merge.Column - Rng.Column + 1
  For i = Rng.Rows.Count To 1 Step -1
   If Rng(i, iCol) = 0 Then
     Luu = Rng(i, iMerge).Value
     Rng(i, iMerge).EntireRow.Delete
     Rng(i, iMerge).Value = Luu
   End If
  Next
Thoat:   Exit Sub
End Sub
Bấm nút để chạy code và kiểm tra thử xem có chính xác không nha!
Nếu chưa đúng thì.. hỏi tiếp
Cám ơn bác đã chỉ giáo, nhưng bác cho em hỏi là bây giờ em muốn chép cái code của bác sang để dùng cho 1 file bất kỳ nào thì làm cách nào.
Mà cái code ấy khi mình sử dụng xong rồi, khi in ra thì có cái code ấy không, file in ra có bình thường không bác
Thank bác nhiều nhiều nhé
 
Bạn thử file Addin này xem có được không nha! Nếu chạy tốt trên 1 file mới thì bạn copy file này vào
C:\Program Files\Microsoft Office\OFFICE11\XLSTART để nó sẽ tự chạy khi Excel được mở lên!
Khi in thì sẽ không thấy công thức hoặc code này đâu! Nó chỉ lấy dữ liệu trên bảng tính ra in thôi! Bạn yên tâm.
Thân.
 

File đính kèm

Bạn thử file Addin này xem có được không nha! Nếu chạy tốt trên 1 file mới thì bạn copy file này vào
C:\Program Files\Microsoft Office\OFFICE11\XLSTART để nó sẽ tự chạy khi Excel được mở lên!
Khi in thì sẽ không thấy công thức hoặc code này đâu! Nó chỉ lấy dữ liệu trên bảng tính ra in thôi! Bạn yên tâm.
Thân.
Không được nó báo lỗi: run time error '5'. Sau đó là: file options could not be found
 
Lại bị vấn đề menu nó hành mình nữa rồi!
Và cuối cùng anh ta cũng đã làm xong!
Gửi bạn!
Thân.
 

File đính kèm

Lại bị vấn đề menu nó hành mình nữa rồi!
Và cuối cùng anh ta cũng đã làm xong!
Gửi bạn!
Thân.
Không được bác Po_Pikachu ơi, cái VD mà bác đưa em thì làm ok, nhưng khi dùng vào cái file của em thì vẫn chưa được, nó vẫn bị xóa mất dữ liệu. Bác xem lại hộ em cái, hay là bác cho cái đ/c email em gửi file của em rồi bác ktra giúp em với. Chứ ở đây em không att. file được.
 
Web KT

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

Back
Top Bottom