???Code về Remove unsed empty ending rows/Columns!

Liên hệ QC

ThuNghi

Hãy cho rồi sẽ nhận!
Thành viên đã mất
Tham gia
16/8/06
Bài viết
3,808
Được thích
4,449
Tôi thấy trong ASAP Ultilities có phần
Remove unused empty ending rows/Columns
Đã thử viết 1 code, xác định EndRow và EndCol và
Selection.Clear
Selection.ClearContents
Selection.ClearFormats
Thậm chí Delete mà vẫn không ăn thua, khi nhấn Ctr End thì vẫn chưa OK.
Các bạn viết hộ 1 code với yêu cầu xóa như trên "Remove unused empty ending rows/Columns" nhằm làm giảm bớt dung lượng file.
Các object thì xóa được.
Xin cám ơn!
"No body help me!"
Tìm trong cái này mà chả hiểu nó nói cái gì.
http://www.ozgrid.com/VBA/ExcelRanges.htm

 
Lần chỉnh sửa cuối:
Tôi thử dùng code sau, báo cells cuối là A2
Và tôi delete từ dòng 3 và cột b, nhưng khi Ctr End thì vẫn báo B60.
PHP:
Sub FindLastCell()
''''http://www.ozgrid.com/VBA/ExcelRanges.htm
Dim LastColumn As Integer
Dim LastRow As Long
Dim LastCell As Range
    If WorksheetFunction.CountA(Cells) > 0 Then
        'Search for any entry, by searching backwards by Rows.
        LastRow = Cells.Find(What:="*", After:=[A1], _
                    SearchOrder:=xlByRows, _
                    SearchDirection:=xlPrevious).Row
        'Search for any entry, by searching backwards by Columns.
                LastColumn = Cells.Find(What:="*", After:=[A1], _
                    SearchOrder:=xlByColumns, _
                    SearchDirection:=xlNext).Column
                    MsgBox Cells(LastRow, LastColumn).Address
    End If
End Sub
Cá bạn xem giúp, chỉ có Asap là xóa OK thôi.
 

File đính kèm

Upvote 0
Tôi thử dùng code sau, báo cells cuối là A2
Và tôi delete từ dòng 3 và cột b, nhưng khi Ctr End thì vẫn báo B60.
PHP:
Sub FindLastCell()
''''http://www.ozgrid.com/VBA/ExcelRanges.htm
Dim LastColumn As Integer
Dim LastRow As Long
Dim LastCell As Range
    If WorksheetFunction.CountA(Cells) > 0 Then
        'Search for any entry, by searching backwards by Rows.
        LastRow = Cells.Find(What:="*", After:=[A1], _
                    SearchOrder:=xlByRows, _
                    SearchDirection:=xlPrevious).Row
        'Search for any entry, by searching backwards by Columns.
                LastColumn = Cells.Find(What:="*", After:=[A1], _
                    SearchOrder:=xlByColumns, _
                    SearchDirection:=xlNext).Column
                    MsgBox Cells(LastRow, LastColumn).Address
    End If
End Sub
Cá bạn xem giúp, chỉ có Asap là xóa OK thôi.

Theo ý kiến của em thì anh ThuNghi thiếu động tác SAVE file lại thì phải! Anh có thể thử chèn thêm dòng code để lưu file lại xem sao!
PHP:
Sub FindLastCell()
''''http://www.ozgrid.com/VBA/ExcelRanges.htm
Dim LastColumn As Integer
Dim LastRow As Long
Dim LastCell As Range
    If WorksheetFunction.CountA(Cells) > 0 Then
        'Search for any entry, by searching backwards by Rows.
        LastRow = Cells.Find(What:="*", After:=[A1], _
                    SearchOrder:=xlByRows, _
                    SearchDirection:=xlPrevious).Row
        'Search for any entry, by searching backwards by Columns.
                LastColumn = Cells.Find(What:="*", After:=[A1], _
                    SearchOrder:=xlByColumns, _
                    SearchDirection:=xlNext).Column
                    MsgBox Cells(LastRow, LastColumn).Address
    End If
ActiveWorkbook.Save  ''<==== Anh ThuNghi thử thêm dòng này vào code của anh xem sao!
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Do cái file gởi lên đã delete column, row mấy lần rồi. Chắc không phải vậy. Save thì liên quan gì.
Kiệt xem thử file sau.
 

File đính kèm

Upvote 0
Do cái file gởi lên đã delete column, row mấy lần rồi. Chắc không phải vậy. Save thì liên quan gì.
Kiệt xem thử file sau.

Ta có thể làm một ví dụ sau nhé:
- Từ A1-->A50 ta gõ toàn giá trị "a", mục đích cho tất cả các ô trong Range("A1:A50") đều nonblank
- Delete một số dòng cuối tại A45:A50, anh có thể delete theo một trong hai cách sau, cách nào cũng được: a.Ấn nút delete (tương đương ClearContents) - b.Delete Entire Row
- Ấn Ctrl+End ---> Excel vẫn trả về ô A50
- Ấn nút Save (Ctrl+S)
- Ấn Ctrl+End ---> Excel sẽ trả về ô A44 ??
 
Upvote 0
Web KT

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

Back
Top Bottom