Xóa Name rác.

Liên hệ QC

sealand

Thành viên gạo cội
Tham gia
16/5/08
Bài viết
4,884
Được thích
7,670
Giới tính
Nam
Nghề nghiệp
Kế Toán
Mình đã cài Virus Macro Warming của TUAN VNUNI. Khi sử dụng cảnh báo tốt.
Nhưng có 1 số file Excel (Mẫu báo cáo BHXH tải từ Internet ) báo xóa Name rác và mình chọn xóa nhưng chương trình không xóa được hết. Mình vào define--Name để Delete nhưng không được.
Các bạn chỉ mình cách nào xóa được Name dạng này với.
Xin cảm ơn.
 
- Gửi thẳng cho anh Tuân đi bạn ! Cũng là góp phần giúp anh Tuân hoàn thiện Add-Ins của mình !
 
Mong các anh chị giúp đỡ! chân thành cảm ơn....!@2@
Bạn chen ngang topic người khác rồi.
Code xóa dòng nếu C =0
PHP:
Sub XoaRow()
Dim eRow As Long
Sheet1.Select
eRow = [a65000].End(xlUp).Row

For i = eRow To 1 Step -1
    If Range("C" & i).Value = 0 Then Rows(i).Delete Shift:=xlUp
Next

End Sub
Nhờ Mod dời bài hộ, cám ơn!
 
Chẳng hiểu sao chương trình của bạn TUAN tôi không làm được
Trước đây thì có báo nhưng diệt không được , nay thì không báo luôn
 
Mình đã cài Virus Macro Warming của TUAN VNUNI. Khi sử dụng cảnh báo tốt.
Nhưng có 1 số file Excel (Mẫu báo cáo BHXH tải từ Internet ) báo xóa Name rác và mình chọn xóa nhưng chương trình không xóa được hết. Mình vào define--Name để Delete nhưng không được.
Các bạn chỉ mình cách nào xóa được Name dạng này với.
Xin cảm ơn.
Có 1 vài name khá kỳ lạ, dùng chương trình xóa không được, xóa bằng tay cũng không xong... nhưng nếu anh mở file trên Excel2007 thì nó làm tất tần tật trong vòng 5s
 
Cái link đó chạy tốt mà anh.
Anh thử cái này xem sao: http://www.giaiphapexcel.com/forum/showthread.php?t=14137
Hồi nãy tải không đựoc, giờ thì đựoc rồi!
Mấy cái name này thật lạ, sau khi xóa xong thì đúng là không còn nhìn thấy nó trong define name nữa... nhưng nếu mở nó trên Excel2007 thì thấy vẩn còn nguyên!
Ah... xóa được rồi đấy
Nhân đây xin hỏi các cao thủ 1 vấn đề liên quan đến Sendkeys
Nếu tôi xóa các name bằng tay thì tôi làm như sau:
1> Chọn 1 sheet
2> Bấm Ctrl + F3
3> Bấm phím TAB
4> Bấm mũi tên lên
5> Bấm Alt + D
6> Bấm mũi tên lên

Lập lại bước 5 và 6 cho đến khi không còn name nào!
Vậy nếu tôi dùng Sendkey để thay thế các phím nóng mà tôi vừa bấm thì phải viết thế nào? Đã viết thử nhưng nó chạy không đúng
 

File đính kèm

  • 12-331-Luu.rar
    59.9 KB · Đọc: 413
Lần chỉnh sửa cuối:
Nếu bạn muốn xóa name nhanh thì đừng dùng lệnh senkey làm gì bạn vào đây sẽ thấy rất nhiều cách xóa name. Nếu tìm trên mục tìm kiếm thì còn nhiều nữa! http://www.giaiphapexcel.com/forum/showthread.php?t=3446 Lệnh Sendkey viết như sau: Application.SendKeys "%tmm" '
 
Lần chỉnh sửa cuối:
Nếu bạn muốn xóa name nhanh thì đừng dùng lệnh senkey làm gì bạn vào đây sẽ thấy rất nhiều cách xóa name. Nếu tìm trên mục tìm kiếm thì còn nhiều nữa!
http://www.giaiphapexcel.com/forum/showthread.php?t=3446
Lệnh Sendkey viết như sau:

Application.SendKeys "%tmm" '<- Alt + T + M + M
Application.SendKeys "^{v}" '<- Ctrl + V

Hoặc bạn vào lệnh Object Brower trên thanh công cụ VBA rồi gõ từ khóa Sendkeys. Khi tìm thấy tồi nhấn phải chuột chọn Help sẽ có rất nhiều thông tin cho bạn chọn đó!
Thân.
Ẹc... ẹc... bạn cứ thử xóa name trong file mà ThuNghi gữi lên sẽ biết! Chưong trình của bạn TuanVNUNI bó tay luôn rồi đấy, cả Excel2007 cũng không xóa được! Vậy mà tôi dùng cách "củ chuối" trên thì lại được
 
Ẹc..Ẹc.. Sao em dùng cách cùi bắp đó mà có thấy gì hết đâu! Nó vẫn trơ ra đó.
 
Lần chỉnh sửa cuối:
Ẹc..Ẹc.. Sao em dùng cách cùi bắp đó mà có thấy gì hết đâu! Nó vẫn trơ ra đó.
Có 1 vài name rất cứng đầu... sau khi bạn chạy code lần 1 thì đã có 1 số name bị xóa, còn lại cho dù bạn xóa bằng tay nó vẩn trơ trơ!
Lúc ấy hãy tạm lưu và đóng file lại, mở ra lần nữa rồi chạy code!
Chú ý: Phải chạy trên từng sheet 1 vì có 1 số name thuộc loại cục bộ (name của sheet chứ không phải của Workbook), chỉ nhìn thấy khi chọn vào sheet tương ứng
Đóng và lưu file, rồi lại mở ra kiểm tra, làm chừng 3 lần sẽ xóa sạch các name
Code của tôi đơn giãn như sau:
PHP:
Sub Test()
  Application.SendKeys "^{F3}"
  Application.SendKeys "{TAB}"
  Application.SendKeys "{UP}"
  For i = 1 To 500
     Application.SendKeys "%d"
     Application.SendKeys "{UP}"
  Next
  Application.SendKeys "{ESC}"
End Sub
 
Lần chỉnh sửa cuối:
Có 1 vài name rất cứng đầu... sau khi bạn chạy code lần 1 thì đã có 1 số name bị xóa, còn lại cho dù bạn xóa bằng tay nó vẩn trơ trơ!
Lúc ấy hãy tạm lưu và đóng file lại, mở ra lần nữa rồi chạy code!
Chú ý: Phải chạy trên từng sheet 1 vì có 1 số name thuộc loại cục bộ (name của sheet chứ không phải của Workbook), chỉ nhìn thấy khi chọn vào sheet tương ứng
Đóng và lưu file, rồi lại mở ra kiểm tra, làm chừng 3 lần sẽ xóa sạch các name
Code của tôi đơn giãn như sau:
PHP:
Sub Test()
  Application.SendKeys "^{F3}"
  Application.SendKeys "{TAB}"
  Application.SendKeys "{UP}"
  For i = 1 To 500
     Application.SendKeys "%d"
     Application.SendKeys "{UP}"
  Next
  Application.SendKeys "{ESC}"
End Sub
Gia công quá, thú thật lúc đâu tôi xóa OK, sau này xóa lại để HD bà chị thì không được, cũng dùng Excel 2007. Cũng chả nhớ mình đã làm gì.
Sao cái Virus Macro được tạo ra từ Excel mà lại không thể từ Excel xoa nhỉ, hay là quay lại Ex97.
Dù sao cũng cám ơn bạn.
 
Gia công quá, thú thật lúc đâu tôi xóa OK, sau này xóa lại để HD bà chị thì không được, cũng dùng Excel 2007. Cũng chả nhớ mình đã làm gì.
Sao cái Virus Macro được tạo ra từ Excel mà lại không thể từ Excel xoa nhỉ, hay là quay lại Ex97.
Dù sao cũng cám ơn bạn.

Anh xem cái VirusMacroWarning có tiêu diệt được không nhé.
http://www.bluesofts.net/Products/AddIns/VirusMacroWarning/Index.htm
 
Gần đây tôi thường thấy trong file có 1 sheet ẩn, tên là XL4Poppy, chứa các mã lệnh của Macro 4.
Và có rất nhiều name rác (gần 400).

Tôi thường làm thế này:
1. Hiện và xóa XL4Poppy.
2. Chạy vài lần 2 macro sau

Sub xoa_ten()
For i = 1 To Names.Count
Names(1).Delete
Next
End Sub

Sub Doi_Noi_Dung_ten()
For i = 1 To Names.Count
Names(i).Value = "A1"
Next
End Sub

3. Xóa tiếp bằng tay, có thể dùng SUB với Sendkeys
4. Đóng file và chương trình Excel trước khi làm tiếp với Excel

Thông thường, dung lượng file giảm khoảng 600 KB.
 
Lần chỉnh sửa cuối:
Tôi dùng thử VirusMacroWarning nhưng vẫn không xóa được hết các Name rác và vẫn phải xóa bằng tay. Tôi gửi kèm 2 files dưới đây: book1.xls là file gốc, book2.xls là file đã dùng VirusMacroWarning để xóa các Name rác, mọi người kiểm tra dùm.
 

File đính kèm

  • 1.rar
    184.9 KB · Đọc: 59

File đính kèm

  • Book111.rar
    20.9 KB · Đọc: 25
Bạn vẫn dùng VirusMacroWarning hay vào Define Name để xoá từng name?
 
Web KT
Back
Top Bottom