Bạn đổi đuôi của file .xlsx thành .zip rồi thao tác như một file nén bình thường thôi, bạn có thể dùng phần mềm xml notepad để ở file workbook.xml và điều chỉnh cho đỡ rối. Sau khi sửa file .zip xong thì đổi đuôi ngược lại thành .xlsxNhờ bác hướng dẫn cụ thể hơn được không ạ? Mình chưa biết cách chuyển sang loại gì, bằng phần mềm nào? Cảm ơn nhiều.
Thật ra có hơn 9694 name trong 1 file cung không phải đến nỗi không hiển thị được. Chắc phải có nguyên nhân khác. E thử xóa name bằng code VBA nhưng sau khi xóa vẫn không hiển thị được hộp thoại name managerFile của bạn bị chứa quá nhiều name, nhiều đến mức không thể mở hộp thoại name lên luôn. Cách xử lý là chuyển file thành file zip -> xl/workbook.xml xoá hết mục definedNames đi rồi lưu lại file rồi chuyển lại thành file excel là xong.
Mình có đính kèm file đã xoá hết name.
Có tận 92723 cái name lận bạn ạ. Nếu bạn xoá bằng vba mà chỉ xoá được 9694 cái name thì vẫn còn rất nhiều name chưa được xoá nên không hiện được hộp thoại name manager thì cũng phải.Thật ra có hơn 9694 name trong 1 file cung không phải đến nỗi không hiển thị được. Chắc phải có nguyên nhân khác. E thử xóa name bằng code VBA nhưng sau khi xóa vẫn không hiển thị được hộp thoại name manager
Xóa bằng VBA chắc bạn có để câu Resume next nên nó thoát ra rồi. Có 1 name lỗi #REF và VBA không chấp nhận và dừng lại.Thật ra có hơn 9694 name trong 1 file cung không phải đến nỗi không hiển thị được. Chắc phải có nguyên nhân khác. E thử xóa name bằng code VBA nhưng sau khi xóa vẫn không hiển thị được hộp thoại name manager
Vậy dùng VBA xử lý các name này như thế nào bác nhỉ? em chưa nghĩ ra hướng nào cả!Xóa bằng VBA chắc bạn có để câu Resume next nên nó thoát ra rồi. Có 1 name lỗi #REF và VBA không chấp nhận và dừng lại.
Khiếp thật...............Có tận 92723 cái name lận bạn ạ. Nếu bạn xoá bằng vba mà chỉ xoá được 9694 cái name thì vẫn còn rất nhiều name chưa được xoá nên không hiện được hộp thoại name manager thì cũng phải.
Thì cứ xóa từng cái thôi. Cho vòng lặp duyệt ngược để nếu không xóa được cũng không ảnh hưởng tiến trình.Vậy dùng VBA xử lý các name này như thế nào bác nhỉ?
Sub DelNames()
On Error Resume Next
Dim i As Long, n As Long
Application.Calculation = xlCalculationManual
n = Names.Count
For i = n To 1 Step -1
Names(i).Delete
If i Mod 1000 = 0 Then
DoEvents
Debug.Print "Còn " & i & " name."
End If
Next
Application.Calculation = xlCalculationAutomatic
MsgBox "Xong"
End Sub
Duyệt ngược sẽ không xót cái nào và chạy ổn. Nhưng em dùng For Each thì bị tắt file đột ngột luôn, không biết anh có bị như thế không.Thì cứ xóa từng cái thôi. Cho vòng lặp duyệt ngược để nếu không xóa được cũng không ảnh hưởng tiến trình.
Cách xóa hết Name này thì vứt luôn cái tệp vào thùng rác cho nhanh đó bạn.File của bạn bị chứa quá nhiều name, nhiều đến mức không thể mở hộp thoại name lên luôn. Cách xử lý là chuyển file thành file zip -> xl/workbook.xml xoá hết mục definedNames đi rồi lưu lại file rồi chuyển lại thành file excel là xong.
Mình có đính kèm file đã xoá hết name.
Vâng em chỉ dùng cách này nếu ko dùng bất kỳ name nào trong file nữa thôi chứ nếu trong file có dùng name thì xoá kiểu này thì vứt hết.Cách xóa hết Name này thì vứt luôn cái tệp vào thùng rác cho nhanh đó bạn.
@Trojan
Xóa tuần tự các name với VBA:
Khi thực hiện các bước đồng thời xóa các biểu thức tham chiếu đến các name đã được xóa nếu có.
- Xóa các name lỗi từng trang tính trước.
- Xóa các name lỗi dự án.
- Xóa các name trùng value của trang tính và dự án, giữ lại name nếu được tham chiếu.
- Xóa các name không được tham chiếu nếu cần.
Giữ lại name có value. Để đề phòng các name này là quan trọng không bị xóa.
Hỏi mọi người đã lâu mà lần trước không thực hiện được. Lần này lại dính lỗi nên tìm hiểu kỹ thì đúng là dùng cách của bác này thật hiệu quả. Các loại VBA code đều không chạy được file của tôi. Cảm ơn bác đã hướng dẫn.Bạn đổi đuôi của file .xlsx thành .zip rồi thao tác như một file nén bình thường thôi, bạn có thể dùng phần mềm xml notepad để ở file workbook.xml và điều chỉnh cho đỡ rối. Sau khi sửa file .zip xong thì đổi đuôi ngược lại thành .xlsx
Anh ơi chỗ này anh có phát triển chưa ạ?Có thời gian tôi sẽ phát triển Add-in hỗ trợ xóa, phục hồi, và tự động cảnh báo số lượng Name quá lớn khi làm việc.