Cho mình hỏi mình dùng code xóa dòng trống nhiều sheet sao nó chỉ xóa hết dòng trống sheet hiện tại còn các sheet các không xóa hết dòng trống. Cảm ơn

Liên hệ QC

Thbv

Thành viên hoạt động
Tham gia
3/5/19
Bài viết
102
Được thích
10


Sub XOADONGTRONG()

Dim ws As Worksheet

For Each ws In ActiveWorkbook.Worksheets

If ws.Name <> "Sheet1" And ws.Name <> "TongHop" Then

ws.Range("H1:H" & Range("H3000").End(xlUp).Row). _

SpecialCells(xlCellTypeBlanks).EntireRow.Delete

End If

Next ws

End Sub

















 
Cảm ơn bạn nhưng vẫn không xóa hết. Mình gửi file mong bạn giúp đỡ. Cảm ơn nhiều
Bài đã được tự động gộp:

Đã làm nhiều lần nhưng không được mong được giúp đỡ. Cảm ơn nhiều. Hy vọng sẽ thành công
 

File đính kèm

  • File.xlsx
    907.1 KB · Đọc: 4
Mình nghĩ xóa không hết có thể là phương thức SpecialCells(xlCellTypeBlanks)

Như mình, chân phương là vầy:
PHP:
Sub XoaDongTongTrongCacTrang()
Dim Ws As Worksheet, Cls As Range, Rng As Range
'On Error Resume Next               '
For Each Ws In ActiveWorkbook.Worksheets
    If Ws.Name <> "Sheet1" And Ws.Name <> "TongHop" Then
        Dim dRg As Range
        Set Rng = Ws.Range(Ws.[H1], Ws.[H65500].End(xlUp))
        For Each Cls In Rng
            If Cls.Value = "" Then
                If dRg Is Nothing Then
                    Set dRg = Rows(Cls.Row & ":" & Cls.Row)
                Else
                    Set dRg = Union(dRg, Rows(Cls.Row & ":" & Cls.Row))
                End If
            End If
        Next Cls
        If Not dRg Is Nothing Then
            MsgBox dRg.Rows.Count, , Ws.Name:            dRg.Delete
            Set dRg = Nothing
        End If
    End If
Next Ws
End Sub
 
Mình chạy thử vẫn không được. Mình gửi file mong bạn giúp đỡ. Xin chân thành cảm ơn
 

File đính kèm

  • File.xlsx
    336.3 KB · Đọc: 8
Mình chạy thử vẫn không được. Mình gửi file mong bạn giúp đỡ. Xin chân thành cảm ơn
Bạn chạy sub Main xem được không ạ:
Mã:
Option Explicit

Sub Main()
Dim ws As Worksheet, r As Range, lr As Long
For Each ws In ThisWorkbook.Worksheets
    If ws.Name <> "Sheet1" Then
        With ws
            lr = .Cells(.Rows.Count, "J").End(xlUp).Row
            Set r = .Range("D10:AD" & lr)
            RemoveBlankRows r
        End With
    End If
Next ws
End Sub

Sub RemoveBlankRows(ByVal sRng As Range)
    'Code by nickname befaint --- giaiphapexcel
    Dim a(), maxR As Long, i As Long, j As Long, k As Long, maxC As Long
    Dim Res(), sTxt As String
    If sRng.Rows.Count = 1 Then Exit Sub
    a = sRng.Value2
    maxR = UBound(a, 1)
    maxC = UBound(a, 2)
    ReDim Res(1 To maxR, 1 To maxC)
    For i = 1 To maxR
        sTxt = ""
        For k = 1 To maxC
            sTxt = sTxt & a(i, k)
        Next k
        If Len(sTxt) > 0 Then
            j = j + 1
            For k = 1 To maxC
                Res(j, k) = a(i, k)
            Next k
        End If
    Next i
    sRng.ClearContents
    If j > 0 Then sRng.Cells(1, 1).Resize(j, maxC).Value = Res
End Sub
 
Cảm ơn bạn. Vẫn chưa được mong bạn tải file mình ở trên chạy thử, mình muốn bỏ dòng trống theo điều kiện cột H có ô trống thì xóa cả hàng tất cả các sheet
Bài đã được tự động gộp:

 

File đính kèm

  • File.xlsx
    336.3 KB · Đọc: 3
Cảm ơn bạn. Vẫn chưa được mong bạn tải file mình ở trên chạy thử, mình muốn bỏ dòng trống theo điều kiện cột H có ô trống thì xóa cả hàng tất cả các sheet
Bài đã được tự động gộp:
Chưa được ở chỗ nào sheet nào vậy bạn, bạn tô màu vàng giúp mình chỗ đó nhé.
 

File đính kèm

  • File.xlsm
    506.3 KB · Đọc: 5
Mình chạy thử vẫn không được. Mình gửi file mong bạn giúp đỡ. Xin chân thành cảm ơn
Thêm 1 lệnh, như sau:
PHP:
Sub XoaDongTongTrongCacTrang()
Dim Ws As Worksheet, Cls As Range, Rng As Range
'On Error Resume Next               '
For Each Ws In ActiveWorkbook.Worksheets
    If Ws.Name <> "Sheet1" And Ws.Name <> "TongHop" Then
4        Dim dRg As Range:                                       Ws.Select
        Set Rng = Ws.Range(Ws.[H1], Ws.[H65500].End(xlUp))
        For Each Cls In Rng
            If Cls.Value = "" Then
                If dRg Is Nothing Then
                    Set dRg = Rows(Cls.Row & ":" & Cls.Row)
                Else
                    Set dRg = Union(dRg, Rows(Cls.Row & ":" & Cls.Row))
                End If
            End If
        Next Cls
        If Not dRg Is Nothing Then
            MsgBox dRg.Rows.Count, , Ws.Name:            dRg.Delete
            Set dRg = Nothing
        End If
    End If
Next Ws
End Sub
Mình chạy trên file #5 của bạn & được
 
Cảm ơn bạn nhiều. Được rồi nhưng mỗi khi lọc dòng trống ở sheet nào nó hiện số 8 trong ô và bắt mình nhấn ok. Có cách nào không phải nhấn ok từng sheet không bạn?
 

File đính kèm

  • 20190504_234412.jpg
    20190504_234412.jpg
    2.9 MB · Đọc: 5
Thì bạn xóa bén câu lệnh này đi:
MsgBox dRg.Rows.Count, , Ws.Name:
(Nhớ xóa luôn ký tự ':' đó nha.)
 
Cảm ơn bạn nhưng vẫn không xóa hết. Mình gửi file mong bạn giúp đỡ. Cảm ơn nhiều
Bài đã được tự động gộp:

Đã làm nhiều lần nhưng không được mong được giúp đỡ. Cảm ơn nhiều. Hy vọng sẽ thành công
Thử 1 cách khác:

Mã:
Sub XoaDong_NeuCotH_Rong()
Application.ScreenUpdating = False
Dim i As Long, j As Long
'Xóa tù Sheet 3 > Sheet 14 (2 sheet bên trái không xóa)
    For i = 3 To 14
        Sheets(i).Activate
        'Loop qua dòng 1500 Tói dòng 10
        For j = 1500 To 10 Step -1
            'Néu Cell trong côt H là tróng
            If Cells(j, 8) = "" Then
            'Delete dòng néu côt H có Cell tróng
            Rows(j).Delete
            End If
        Next j
    Next i
Application.ScreenUpdating = True
End Sub
 
Thử 1 cách khác:

Mã:
Sub XoaDong_NeuCotH_Rong()
Application.ScreenUpdating = False
Dim i As Long, j As Long
'Xóa tù Sheet 3 > Sheet 14 (2 sheet bên trái không xóa)
    For i = 3 To 14
        Sheets(i).Activate
        'Loop qua dòng 1500 Tói dòng 10
        For j = 1500 To 10 Step -1
            'Néu Cell trong côt H là tróng
            If Cells(j, 8) = "" Then
            'Delete dòng néu côt H có Cell tróng
            Rows(j).Delete
            End If
        Next j
    Next i
Application.ScreenUpdating = True
End Sub
Cảm ơn bạn nhiều
 

Nhờ các bạn giúp code: Sheet T1 cột I dòng 2 đặt hàm Vlookup lấy dữ liệu ở sheet Loaitru (Cột A và B) vlookup đến dòng cuối cùng, sheet T2 cột I đặt hàm Vlookup lấy dữ liệu ở sheet Loaitru (Cột C và D) vlookup đến dòng cuối cùng.............sheet T12 cột I đặt hàm Vlookup lấy dữ liệu ở sheet Loaitru (Cột w và X) vlookup đến dòng cuối cùng. Xin trân trọng cảm ơn bạn nhiều. file đính kèm
Bài đã được tự động gộp:


Bài đã được tự động gộp:

Rất mong được giúp đỡ.
 

File đính kèm

  • Copysheet.xlsx
    1.6 MB · Đọc: 5
Web KT

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

Back
Top Bottom