Có cách nào xác định name còn dùng với name rác trong nhiều name ko?

Liên hệ QC

Po_Pikachu

Po_pikachu@ymail.com
Tham gia
29/4/08
Bài viết
2,209
Được thích
3,572
Nghề nghiệp
#VALUE!
Em muốn hỏi các bác là. Nếu bị virus thì sẽ bị tạo ra rất nhiều name rác vô ích nhưng những file bị nhiễm thì thường sẽ có vài name còn dùng (name thực). Vậy có cách nào xác định name có thực trên sheet này (hoặc file Excel hiện hành này) không? Nếu có thì có thể cho em xin luôn cách xóa các name vô dụng kia đi luôn (Nhưng nhớ chừa các name tốt ra nhé!). Thanks.
 
Lần chỉnh sửa cuối:
Em muốn hỏi các bác là. Nếu bị virus thì sẽ bị tạo ra rất nhiều name rác vô ích nhưng những file bị nhiễm thì thường sẽ có vài name còn dùng (name thực). Vậy có cách nào xác định name có thực trên sheet này (hoặc file Excel hiện hành này) không? Nếu có thì có thể cho em xin luôn cách xóa các name vô dụng kia đi luôn (Nhưng nhớ chừa các name tốt ra nhé!).
Thanks.
Cái này chắc là khó đây. Vì nếu một Name lỗi #REF chẳng hạn thì đơn giản rồi nhưng để biết 1 Name "rác" thì chắc chỉ có cách dò tìm thủ công mà thôi. Còn cách xóa Name rác thì bạn có thể dùng 1 chương trình quản lý Name nào đó (có khá nhiều trên GPE) rồi chỉ định Name rác cho chương trình xóa 1 lần.
Mình không biết có chương trình nào nhận ra Name rác hay không ??? nếu có thì tốt rồi.

TDN
 
Upvote 0
Em muốn hỏi các bác là. Nếu bị virus thì sẽ bị tạo ra rất nhiều name rác vô ích nhưng những file bị nhiễm thì thường sẽ có vài name còn dùng (name thực). Vậy có cách nào xác định name có thực trên sheet này (hoặc file Excel hiện hành này) không? Nếu có thì có thể cho em xin luôn cách xóa các name vô dụng kia đi luôn (Nhưng nhớ chừa các name tốt ra nhé!).
Thanks.

Cũng là thủ công thôi bạn ạ.
Tuy nhiên để nhanh hơn thì bạn nên xóa các name lỗi trước :

PHP:
Sub DeleteErrName()
    On Error Resume Next
    Dim NSh As Name, i As Integer
    ''If WksExists("ShName") = False Then Sheets.Add.Name = "ShName"
    For Each NSh In ActiveWorkbook.Names
        If InStr(1, NSh.RefersToR1C1, "#") > 0 Then
            ''i = i + 1
            ''Sheets("ShName").Range("A" & i).Value = NSh.Name
            ''Sheets("ShName").Range("B" & i).Value = " " & NSh.RefersToR1C1
            NSh.Delete
        End If
    Next
End Sub
Sau đó xóa các Name Link đến các nơi vớ vẩn khác :

PHP:
Sub DeleteLinkName()
    On Error Resume Next
    Dim NSh As Name, i As Integer
    ''If WksExists("ShName") = False Then Sheets.Add.Name = "ShName"
    For Each NSh In ActiveWorkbook.Names
        If InStr(1, NSh.RefersToR1C1, "\") > 0 Then
            ''i = i + 1
            ''Sheets("ShName").Range("A" & i).Value = NSh.Name
            ''Sheets("ShName").Range("B" & i).Value = " " & NSh.RefersToR1C1
            NSh.Delete
        End If
    Next
End Sub
như vậy số lượng name sẽ giảm đi rất nhiều.

Thân!
 
Lần chỉnh sửa cuối:
Upvote 0
Trước tiên em xin có lời cảm ơn hai bác
tedaynui
user_offline.gif

(*_*)
pip.gif


Mr Okebab
user_offline.gif

Ngon Ngất Ngây !!!!
pip.gif
pip.gif
pip.gif

Sau nữa là khất lỗi bạn
Po_Pikachu
user_offline.gif

10th Excel Member
gold.gif
gold.gif

mình xin nêu ra 1 ý tưởng (cũng hợp với yêu cầu của bạn)

Tạo ra 1 file excel có khả năng xóa các name rác của file excel khác

Rất mong được các bác quan tâm, giúp đỡ (ý tưởng này liệu có khả thi???)
 
Upvote 0
Trước tiên em xin có lời cảm ơn hai bác
tedaynui
user_offline.gif

(*_*)
pip.gif


Mr Okebab
user_offline.gif

Ngon Ngất Ngây !!!!
pip.gif
pip.gif
pip.gif

Sau nữa là khất lỗi bạn
Po_Pikachu
user_offline.gif

10th Excel Member
gold.gif
gold.gif

mình xin nêu ra 1 ý tưởng (cũng hợp với yêu cầu của bạn)

Tạo ra 1 file excel có khả năng xóa các name rác của file excel khác

Rất mong được các bác quan tâm, giúp đỡ (ý tưởng này liệu có khả thi???)

Việc xóa name ở File khác không khó (Hai cái SUB trên của mình đang làm việc đó : ActiveWorkbook)

Điều quan trọng là : Như thế nào là Name rác ???

Thân!
 
Upvote 0
Việc xóa name ở File khác không khó (Hai cái SUB trên của mình đang làm việc đó : ActiveWorkbook)

Điều quan trọng là : Như thế nào là Name rác ???

Thân!

Các SUB trên bác cho thêm họp chọn file khác để xóa name rác

Tạm coi những name có tham chiếu đến các cell trong workbook là name do người sử dụng tạo ra
Những name link đến máy khác, link đến ổ đĩa khác ... name có lỗi thì oi là name rác
 
Upvote 0
Các SUB trên bác cho thêm họp chọn file khác để xóa name rác

Tạm coi những name có tham chiếu đến các cell trong workbook là name do người sử dụng tạo ra
Những name link đến máy khác, link đến ổ đĩa khác ... name có lỗi thì oi là name rác

Việc xóa các Name ở File khác thì mình phải mở File đó ra thì mới xóa được. Còn việc không mở mà xóa thì . . mình chưa biết!!

Vì vậy khi bạn mở File thì bạn có thể dùng SUB trên để xóa.

Nếu các Name có tham chiếu đến nơi khác ngoài File đó thì trong tham chiếu sẽ có ký tự "\" :
PHP:
Sub DeleteLinkName()
    On Error Resume Next
    Dim NSh As Name, i As Integer
    ''If WksExists("ShName") = False Then Sheets.Add.Name = "ShName"
    For Each NSh In ActiveWorkbook.Names
        If InStr(1, NSh.RefersToR1C1, "\") > 0 Then
            ''i = i + 1
            ''Sheets("ShName").Range("A" & i).Value = NSh.Name
            ''Sheets("ShName").Range("B" & i).Value = " " & NSh.RefersToR1C1
            NSh.Delete
        End If
    Next
End Sub
Còn các Name lỗi, name Macro Sheet 4 nữa (Name này rất nguy hiểm)
Bác Tuan cũng đã có 1 công cụ xóa name rất tốt, bạn thử dùng xem sao .

Thân!
 
Lần chỉnh sửa cuối:
Upvote 0
có cách nào xác định name có thực trên sheet này (hoặc file Excel hiện hành này) không? Nếu có thì có thể cho em xin luôn cách xóa các name vô dụng kia đi luôn (Nhưng nhớ chừa các name tốt ra nhé!).
Thanks.
Mình thường dùng add_in Namemanager (cái này hình như của Maika),sau khi phá pas của macro bằng add_in Navigator thì xóa luôn sheet macro,mở NameManager chọn các mục các tên không đúng và các tên Link sẽ thấy các địa chỉ #Ref,xóa mỏi tay luôn
 
Upvote 0
Em muốn hỏi các bác là. Nếu bị virus thì sẽ bị tạo ra rất nhiều name rác vô ích nhưng những file bị nhiễm thì thường sẽ có vài name còn dùng (name thực). Vậy có cách nào xác định name có thực trên sheet này (hoặc file Excel hiện hành này) không? Nếu có thì có thể cho em xin luôn cách xóa các name vô dụng kia đi luôn (Nhưng nhớ chừa các name tốt ra nhé!).
Thanks.

Hình như có phần mềm TNAME của DotNhan, có đăng trên GPE mình, giải quyết vụ Name rác và "sheet ảo" hay lắm. Bạn vào đây thử xem.
 
Upvote 0
Web KT

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

Back
Top Bottom