Vấn đề về Name

Liên hệ QC

jupiter2835

Thành viên mới
Tham gia
20/10/08
Bài viết
39
Được thích
5
Khi tôi mở Excel ra để làm việc, tôi vào Insert/Name/Define và thấy rất nhiều name trong đó. Tôi đã sử dụng macro xóa name rác trên diễn đàn, nhưng vì số lượng name nhiều quá (khoảng hơn 2000 name) máy chạy rất chậm và quá lâu không xóa được. Anh chị nào có thể chỉ cho tôi tại sao khi mở book mới trong excel lại có nhiều name đã được đặt trong đó và làm thế nào để nó không xuất hiện nữa, hoặc có macro nào giúp tôi loại bỏ các name rác đó với số lượng lớn như vậy trong thời gian nhanh nhất không? Tôi xin cảm ơn trước. (Hôm trước tôi post nhưng bị phạm quy)
 
Khi tôi mở Excel ra để làm việc, tôi vào Insert/Name/Define và thấy rất nhiều name trong đó. Tôi đã sử dụng macro xóa name rác trên diễn đàn, nhưng vì số lượng name nhiều quá (khoảng hơn 2000 name) máy chạy rất chậm và quá lâu không xóa được. Anh chị nào có thể chỉ cho tôi tại sao khi mở book mới trong excel lại có nhiều name đã được đặt trong đó và làm thế nào để nó không xuất hiện nữa, hoặc có macro nào giúp tôi loại bỏ các name rác đó với số lượng lớn như vậy trong thời gian nhanh nhất không? Tôi xin cảm ơn trước. (Hôm trước tôi post nhưng bị phạm quy)
Bạn dùng code sau để xóa tất cả name nhé
Mã:
Sub DeleteNamedRanges()
Dim MyName As Name
For Each MyName In Names
    ActiveWorkbook.Names(MyName.Name).Delete
Next
End Sub
 
Khi tôi mở Excel ra để làm việc, tôi vào Insert/Name/Define và thấy rất nhiều name trong đó. Tôi đã sử dụng macro xóa name rác trên diễn đàn, nhưng vì số lượng name nhiều quá (khoảng hơn 2000 name) máy chạy rất chậm và quá lâu không xóa được. Anh chị nào có thể chỉ cho tôi tại sao khi mở book mới trong excel lại có nhiều name đã được đặt trong đó và làm thế nào để nó không xuất hiện nữa, hoặc có macro nào giúp tôi loại bỏ các name rác đó với số lượng lớn như vậy trong thời gian nhanh nhất không? Tôi xin cảm ơn trước. (Hôm trước tôi post nhưng bị phạm quy)
Làm bằng tay cũng được mà (dùng Excel 2007 để thao tác) ---> Quy trình gồm 3 bước
1> Khởi động Excel, vào menu Tools\Macro\Security và check vào mục Medium....
2> Đóng toàn bộ Excel, tìm trong thư mục XLSTART, có file nào trong đó hãy xóa sạch
Thư mục XLSTART thường nằm tại 2 nơi:
C:\Program Files\Microsoft Office\OFFICExx\XLSTART

%User Profiles%\Application Data\Microsoft\Excel\XLSTART
3> Từ bây giờ, mỗi khi mở 1 file Excel nào đó, nếu thấy có cảnh báo Macro, hãy bấm Disable Macro và làm thêm các bước sau:
- Vào menu Format\Sheets\Unhide để mở ẩn các sheet đang ẩn ---> Sheet nào không phải do bạn tạo ra, hãy xóa hết chúng đi
- Bấm Ctrl + F3, vào Define name và xóa hết các name không phải của bạn ---> Ở bước này nên dùng Excel 2007 thao tác sẽ nhanh hơn
-----------------
Lưu ý: Nếu dùng code xóa name mà không thông qua bước 1 thì vẫn không ăn thua đâu nha!
 
Cảm ơn bác nhưng macro này lại báo lỗi
"ActiveWorkbook.Names(MyName.Name).Delete"
 
Cảm ơn bác nhưng macro này lại báo lỗi
"ActiveWorkbook.Names(MyName.Name).Delete"
Code chuẩn nó là vậy, nhưng phải thêm dòng On Error Resume Next ở trên đầu, nếu không sẽ báo lổi (1 số name cứng đầu không xóa được, tiến trình sẽ bị dừng tại đấy)
 
Các pro cho em hỏi vấn đề này: Em muốn liệt kê (có thể sang một sheet mới) tên và giá trị (theo 2 cột) của các ô biến đã đặt tên. Ví dụ ô A1 có giá trị là 10, được đặt tên là dgia1, ô G210 có giá trị 150, được đặt tên là dgia2 ... có khoảng 1000 tên như thế (các tên này nằm ở vị trí không theo quy luật nào hết - nằm lung tung). Kết quả mong muốn là như thế này
Cột 1 : Cột 2
dgia1 : 10
dgia2 : 150
dgia3 : ...
Mong các cao thủ chỉ giáo, em xin chân thành cám ơn!
 
To ngoctunguyen !
Bạn xem file đính kèm, xem số liệu trong sheet1 sau đó kiểm tra công thức trong sheet2 xem đúng ý chưa nhé.
 

File đính kèm

Làm bằng tay cũng được mà (dùng Excel 2007 để thao tác) ---> Quy trình gồm 3 bước
1> Khởi động Excel, vào menu Tools\Macro\Security và check vào mục Medium....
2> Đóng toàn bộ Excel, tìm trong thư mục XLSTART, có file nào trong đó hãy xóa sạch
Thư mục XLSTART thường nằm tại 2 nơi:
C:\Program Files\Microsoft Office\OFFICExx\XLSTART

%User Profiles%\Application Data\Microsoft\Excel\XLSTART
3> Từ bây giờ, mỗi khi mở 1 file Excel nào đó, nếu thấy có cảnh báo Macro, hãy bấm Disable Macro và làm thêm các bước sau:
- Vào menu Format\Sheets\Unhide để mở ẩn các sheet đang ẩn ---> Sheet nào không phải do bạn tạo ra, hãy xóa hết chúng đi
- Bấm Ctrl + F3, vào Define name và xóa hết các name không phải của bạn ---> Ở bước này nên dùng Excel 2007 thao tác sẽ nhanh hơn
Em chào anh hiện giờ cái máy tính của em bị hiện tượng như trên, em xoá file xlstart thì mở khoảng 3 bảng tính khác thì nó lại sinh file xlstart lại mà trong file này khi view modul của nó thì có 1 đoạn code kích hoạt. em không biết nó bị virus gì không mà xoá đi rôì mở lại nó vẫn vậy. anh giúp em với.
 
Web KT

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

Back
Top Bottom