Làm sao để xoá được các Object ẩn

Liên hệ QC

cazonda

Thành viên mới
Tham gia
19/4/10
Bài viết
36
Được thích
15
Các anh chị chỉ giúp em làm sao để xoá được các object ẩn, trong 1 file mà em nhận được có rất nhiều object dẫn đến việc file chạy rất chậm. Nếu dùng go to/specia/objects thì file bị đơ luôn mà tìm từng object ẩn mà xoá thì lâu quá

Cảm ơn anh chị
 
Các anh chị chỉ giúp em làm sao để xoá được các object ẩn, trong 1 file mà em nhận được có rất nhiều object dẫn đến việc file chạy rất chậm. Nếu dùng go to/specia/objects thì file bị đơ luôn mà tìm từng object ẩn mà xoá thì lâu quá

Cảm ơn anh chị
Bạn chọn sheet cần xóa Object ẩn, nhấn Alt+F11, tiếp tục nhấn Ctrl+G để hiện cửa số Immediate, sau đó dán vào đó câu lệnh sau và Enter xem:
PHP:
Activesheet.Drawingobjects.Delete
Lưu ý là câu lệnh trên sẽ xóa tất cả các đối tượng vẽ trên Activesheet đấy nhé.

P/S: Thử cái này an toàn hơn nè: Chỉ những Object ẩn thì mới xóa, những cái nhìn thấy thì không xóa:
PHP:
Sub Test()
    Dim Sh As Shape
    For Each Sh In Activesheet.Shapes
        If Sh.Visible = msoFalse Then Sh.Delete
    Next
End Sub
 
Lần chỉnh sửa cuối:
Vậy để hiển thị các object này lên thì có cách nào không ah? Em nghĩ các object này do cái gì đó tạo ra chứ không phải do người dùng vẽ nên
 
Vậy để hiển thị các object này lên thì có cách nào không ah? Em nghĩ các object này do cái gì đó tạo ra chứ không phải do người dùng vẽ nên

Để hiển thị toàn bộ objects, bạn chỉ cần bấm Alt+F11 để mở VBA, bấm Ctrl+G để mở Immediate, chép đoạn code này:

ActiveSheet.DrawingObjects.Visible = True

vào trong Immediate rồi đặt con trỏ lên dòng đó bấm Enter.
 
Bạn chọn sheet cần xóa Object ẩn, nhấn Alt+F11, tiếp tục nhấn Ctrl+G để hiện cửa số Immediate, sau đó dán vào đó câu lệnh sau và Enter xem:
PHP:
Activesheet.Drawingobjects.Delete
Lưu ý là câu lệnh trên sẽ xóa tất cả các đối tượng vẽ trên Activesheet đấy nhé.

P/S: Thử cái này an toàn hơn nè: Chỉ những Object ẩn thì mới xóa, những cái nhìn thấy thì không xóa:
PHP:
Sub Test()
    Dim Sh As Shape
    For Each Sh In Activesheet.Shapes
        If Sh.Visible = msoFalse Then Sh.Delete
    Next
End Sub
mình làm theo cách bạn chỉ là bị đơ file lun có cách nào ko vậy ? mình làm theo nhiều cách xóa là bị đơ file
 
7z, can thiệp trực tiếp vào cấu trúc tập tin.

1701312092297.png
 
mình làm theo cách bạn chỉ là bị đơ file lun có cách nào ko vậy ? mình làm theo nhiều cách xóa là bị đơ file
Bạn thử sử dụng mã dưới đây:

JavaScript:
Sub DeleteShape()
    Dim Sh, k&
    On Error Resume Next
    Application.ScreenUpdating = False
    For Each Sh In Activesheet.Shapes
       If Sh.Visible = msoFalse Then DoEvents: Sh.Delete: k = k + 1
    Next
    MsgBox "Hoan thanh " & k
End Sub
 
Web KT
Back
Top Bottom