Macro để xoá macro

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

solecao

Thành viên mới
Tham gia
20/9/09
Bài viết
25
Được thích
2
Mình đang làm một file đã chạy, lưu là file template.xlsm. Khi chạy macro trong file,sau khi xong nó sẽ "save as" để mình báo cáo, tuy nhiên trong file này ngoài phần số liệu đã cập nhật,nó vẫn còn lưu các macro mà mình đã lập trình, vậy làm thế nào có thể tự động xoá các macro này (trong file được "save as"). Mình đã record một macro làm việc này nhưng mở code ra thì trống trơn ???
 
các bác ơi, có ai giúp mình với.
 
Mình đang làm một file đã chạy, lưu là file template.xlsm. Khi chạy macro trong file,sau khi xong nó sẽ "save as" để mình báo cáo, tuy nhiên trong file này ngoài phần số liệu đã cập nhật,nó vẫn còn lưu các macro mà mình đã lập trình, vậy làm thế nào có thể tự động xoá các macro này (trong file được "save as"). Mình đã record một macro làm việc này nhưng mở code ra thì trống trơn ???
Vậy thì trong code, thay vì save as với định dạng .xlsm, bạn hãy save as với định dạng .xlsx, đảm bảo là trong file này không còn macro nào cả.
Để tắt thông báo của Excel khi lưu ở định dạng này, bạn sử dụng câu lệnh Application.DisplayAlerts = False
Cuối cùng, đoạn code này có dạng:
PHP:
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "Duong_dan\Ten_file.xlsx", xlOpenXMLWorkbook
Application.DisplayAlerts = True
 
Mình đang làm một file đã chạy, lưu là file template.xlsm. Khi chạy macro trong file,sau khi xong nó sẽ "save as" để mình báo cáo, tuy nhiên trong file này ngoài phần số liệu đã cập nhật,nó vẫn còn lưu các macro mà mình đã lập trình, vậy làm thế nào có thể tự động xoá các macro này (trong file được "save as"). Mình đã record một macro làm việc này nhưng mở code ra thì trống trơn ???
Bạn sử dụng code này trong ThisWorkbook thử nhé
PHP:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  If SaveAsUI = True Then
    Dim VBCodeMod
    Dim TotalLines, i As Long
    On Error Resume Next
   For i = ThisWorkbook.VBProject.VBComponents.Count To 1 Step -1
    Set VBCodeMod = ThisWorkbook.VBProject.VBComponents(i).CodeModule
    With VBCodeMod
        TotalLines = .CountOfLines
        .DeleteLines 1, TotalLines
    End With
   Next
  End If
End Sub
 
Web KT

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

Back
Top Bottom