Làm sao để xoá được các Object ẩn (1 người xem)

  • Thread starter Thread starter cazonda
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

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
 
1720165390765.png
EM CHẠY XONG NÓ HIỆN NÀY LÀ SAO Ạ ?
Bài đã được tự động gộp:

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


--------EM CHẠY XONG NÓ HIỆN NÀY Ạ

1720165463975.png
 
@PHONGGANHHAO bạn cần cho phép chạy Macro VBA trước khi sử dụng mã. Chép lại mã sau.

Mã:
Sub DeleteShape()
    Dim Sh, k&
    On Error Resume Next
    Application.ScreenUpdating = False
    For Each Sh In Activesheet.Shapes
       If Sh.Visible = 0 Then DoEvents: Sh.Delete: k = k + 1
    Next
    MsgBox "Hoan thanh " & k
End Sub
 
@PHONGGANHHAO bạn cần cho phép chạy Macro VBA trước khi sử dụng mã. Chép lại mã sau.

Mã:
Sub DeleteShape()
    Dim Sh, k&
    On Error Resume Next
    Application.ScreenUpdating = False
    For Each Sh In Activesheet.Shapes
       If Sh.Visible = 0 Then DoEvents: Sh.Delete: k = k + 1
    Next
    MsgBox "Hoan thanh " & k
End Sub

Em mở trong này đúng không ạ? mở rồi mà nó cũng vậy. Còn trên thanh nằm ngang thì không thấy hiện thông báo
..
1720170699658.png
 

File đính kèm

  • 1720170627964.png
    1720170627964.png
    26.1 KB · Đọc: 10
Lần chỉnh sửa cuối:
@PHONGGANHHAO Tích chọn cái thứ 2, nếu bạn cảm thấy các tệp excel không an toàn, tích chọn thứ tư nếu các tệp bạn sử dụng bảo đảm an toàn.

Khi mở ứng dụng, bạn nhấn Enabled Macro.
 
Web KT

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

Back
Top Bottom