Cách nào để lựa chọn Range vùng dữ liệu tối ưu?

  • Thread starter heroic
  • Ngày gửi
N

nguoiconxunui

Khách vãng lai
29/6/04
1,280
215
63
Bình Định
aso2pc.co.cc
heroic nói:
Mong chỉ giáo giúp amator về VBA!

2. Khi rút trích dữ liệu từ một worksheet dùng auto filter thì lọc bỏ được các dòng trống, Vậy có cách nào xoá luôn được cái dòng trống đó bằng VBA không?
Thử xem nào
Mã:
Sub DeleteBlankRows()
    Set myrange = Range("B4:I31")
    Set blanks = myrange.SpecialCells(xlCellTypeBlanks)
    For Each area In blanks.Areas
        If area.Columns.Count = myrange.Columns.Count Then
            area.EntireRow.Delete
        End If
    Next area
End Sub



'The code above is usually adequate, however it could be improved upon.
'Since it processes each row deletion independently, it causes recalcs
'and other little things to happen in the Excel application to slow it
'down a bit.  It could be made to be even faster if it built a row
'deletion range and then processed a single delete.  The modification
'below explores the idea.  You can test it on your data to see how much
'faster it really is.  I prefer to use the faster code below.


Sub DeleteBlankRowsEvenFaster()
    Set myrange = Range("B4:I31")
    Set blanks = myrange.SpecialCells(xlCellTypeBlanks)
    For Each area In blanks.Areas
        If area.Columns.Count = myrange.Columns.Count Then
            n = n + 1
            If n = 1 Then
                Set delrange = area.EntireRow
            Else
                Set delrange = Union(delrange, area.EntireRow)
            End If
        End If
    Next area
    delrange.Delete
End Sub


'It's also worth noting that both of the examples above error out if
'no blanks are found using the specialcells method.  I'll leave it up
'to you to add the appropriate errhandlers.
nguồn: Google
em test thấy cũng được lém. Seo không chơi BBCODE được nà
 
Khóa học Quản trị dòng tiền
V

VanHao

Trung cấp
18/12/05
70
4
6
Go Vap
heroic nói:
Không biết ý của mình hiểu có đúng không vì khi để công thức quá nhiều trên bảng tính sẽ chậm và bị phình to kích thước. Nên mình muốn khi thực hiện một thao tác nào đó trên bảng tính thì dùng VBA để xử lý Range, definame, ..qua bên listbox.. thì kích thước sẽ đỡ hơn và xử lý nhanh hơn?
bởi nếu ta range vùng cố định, kích thước file sẽ lớn và dùng nhiều name define trong vùng range thừa thì xử lý sẽ không tối ưu.
Vấn đề mình thấy nhiều ý kiến quá nhưng tranh luận nhiều không hay lắm. Có lẽ tốt nhất là bạn gửi lên 1 file và nhờ mọi người giải hộ. Tất nhiên mổi người một cách và bạn tha hồ mà lựa chon phương án tối ưu. Không khéo lại học được vài kỷ xảo của các cao thủ nữa là đằng khác.
Còn nếu bạn muốn dùng VBA đơn giản mà không cần phải viết code thì gửi file cho tôi ( E-mail : hoaitran91@vnn.vn ).
Mạnh thì dùng sức, yếu thì dùng chước. Đường nào thì cũng về La mã thôi.
 

Xem nhiều

Webketoan Zalo OA