Mình đã viết xong nhung thủ tục cuôi cùng thì chạy được 1 lần rồi bị máy khóa lại và báo đó là vi rut Macro Máy mình dung Bitde ,Và mình thử lại tắt luôn Bit và khởi động lai máy và viết lại với tệp mới vẫn bị như vậy
Code :
ModuleFuc1
Sub RunOpen()
On Error GoTo RaiseErr
Dim fileToOpen
CloseAll
fileToOpen = Application. _
GetOpenFilename("Excel files (*.xls),*.xls,All files (*.*),*.*", "Mo Bao cao - MSC")
If fileToOpen <> False Then
Application.Workbooks.Open fileToOpen
DeleteVBComponent ActiveWorkbook, "Module1"
End If
Exit Sub
RaiseErr:
MsgBox Err.Description, vbCritical, "Error: " & Err.Number
End Sub
Private Sub CloseAll()
Dim wb As Workbook
Dim bSave As Boolean
bSave = (MsgBox("Ban muon luu tat ca workbooks dang mo ?", vbExclamation + vbYesNo, "Dong tat ca de mo Bao cao ") = vbYes)
For Each wb In Application.Workbooks
wb.Close bSave
Next
End Sub
Sub Auto_Close()
'Application.CommandBars("My Addin").Delete
End Sub
Sub DeleteVBComponent(ByVal wb As Workbook, ByVal CompName As String)
' Xoa vbcomponent ten CompName tu wb
Application.DisplayAlerts = False
On Error Resume Next ' Neu co loi thi lam tiep cau lenh ke tiep
wb.VBProject.VBComponents.Remove wb.VBProject.VBComponents(CompName) ' Xoa component
wb.VBProject.VBComponents.Import "C:\Module1.bas"
wb.VBProject.VBComponents.Import "C:\Module4.bas"
wb.VBProject.VBComponents.Import "C:\MenuBaocao.bas"
wb.RunAutoMacros xlAutoOpen ' Nạp khởi tao cho Têp báo cáo
On Error GoTo 0
Application.DisplayAlerts = True
End Sub
Nếu không có DeleteVBComponent Thì bình thường
Các bạn giúp mình nhé
Giải thích :
Dự án này mình viết tạo Add-In chỉ đơn giản là để mở báo cáo của công ty (Trong đó có VBA ) khi mở :
- khi mở thì BC sẽ có 1 thủ tục MSgbox hỏi (Yes,No) làm sao mà tự động chọn No luôn hoặc ko cho thủ tục đó chạy
(Mình chưa biết )
- Xóa Module1 Của báo cáo đó
- Chèn vào 3 Module do mình viết để thiết lập định dạng và load 1 số thông tin mà cty giấu trong Báo cáo
(Mình đã viết code mình đã úp lên các bạn kiểm tra giúp mình )
Các bạn ra tay giúp mình nhé