anhthuongqb
Thành viên mới 

			
		- Tham gia
 - 20/11/08
 
- Bài viết
 - 27
 
- Được thích
 - 0
 

File quá nhiều name rác và link tới các sheet khác. Đã fix cho bạn. Tuy nhiên còn mấy cái Macro 4 chưa tìm thấy vì ko có nhiều time lắm.ai biết làm thế nào để sữa file này thì giúp mình với nhé. Mình đang cần gấp
Nhiều name rác quá đấy mà!ai biết làm thế nào để sữa file này thì giúp mình với nhé. Mình đang cần gấp

Huynh có thể chỉ giúp mình loại bớt các file rác không chư mình còn mấy file cũng có hiện tượng lưu không được. làm dự toán đấu thầu xong khi hoàn công không thể sử dụng để bóc khối lượng thanh toán đượcNhiều name rác quá đấy mà!
Mình xóa hết name rác đi thì lưu file bình thường.

cứu em với các bác ới. Không hiểu vi sao khi em xoa các file rác bằng TNAME thì các sheet bị xoá mất không nói lại được với nhau nũaNhiều name rác quá đấy mà!
Mình xóa hết name rác đi thì lưu file bình thường.


Sub Delete_Names()
  Dim n As Name
  Name1 = MsgBox("Tong so co " & ActiveWorkbook.Names.Count & " Name")
    For Each n In ThisWorkbook.Names
        If n.refersto Like "*[#]REF*" Or _
           n.refersto Like "#REF!*" Or _
           n.refersto Like "*%" Or _
           n.refersto Like "*\*" Then n.Delete
    Next
  MsgBox "Con Lai " & ActiveWorkbook.Names.Count & " Name sach"
End Sub
	Thêm cái này nữa của Bác OKEBAB mà Bác HYen đã chia sẻ cho tôi,Tôi học được cái này trên GPE và đã sửa lại với quan điểm "thà bỏ sót chứ không giết nhầm". Từ lâu tôi chỉ sử dụng duy nhất cách này và thấy tương đối hiệu quả. Xin chia xẻ với các bạn.
PHP:Sub Delete_Names() Dim n As Name Name1 = MsgBox("Tong so co " & ActiveWorkbook.Names.Count & " Name") For Each n In ThisWorkbook.Names If n.refersto Like "*[#]REF*" Or _ n.refersto Like "#REF!*" Or _ n.refersto Like "*%" Or _ n.refersto Like "*\*" Then n.Delete Next MsgBox "Con Lai " & ActiveWorkbook.Names.Count & " Name sach" End Sub
Option Explicit
Sub DeleteErrName()
    On Error Resume Next
    Dim NSh As Name, i As Integer
    Dim OldStatus As Boolean, ThongBao As String
    OldStatus = Application.DisplayStatusBar
    Sheets.Add.Name = "ShName"
    For Each NSh In ActiveWorkbook.Names
        If InStr(1, NSh.RefersToR1C1, "#") > 0 Or _
           InStr(1, NSh.RefersToR1C1, "\") > 0 Then
            i = i + 1
            Application.StatusBar = "Deleted : " & Format(i, "#,##0") & _
                "     Deleting...: " & NSh.Name
            Sheets("ShName").Range("A" & i).Value = NSh.Name
            Sheets("ShName").Range("B" & i).Value = " " & NSh.RefersToR1C1
            NSh.Delete
        End If
    Next
    If i > 0 Then _
        ThongBao = ThongBao & Chr(13) & Chr(13) & "   -" & Format(i, "#,##0") & " Names da xoa"
        
      MsgBox ThongBao, vbInformation, "GPE"
    Application.StatusBar = ""
    Application.DisplayStatusBar = OldStatus
End Sub