Board logo

標題: [發問] 開其他檔時(使其Workbook_Open巨集 失效)僅能唯讀 [打印本頁]

作者: yangjie    時間: 2014-4-6 01:55     標題: 開其他檔時(使其Workbook_Open巨集 失效)僅能唯讀

請教各位大大
Private Sub CommandButton2_Click()
    Sheets("sh1").Cells.Clear
    With CreateObject(ThisWorkbook.Path & "\" & "207班.xls")
        .使 "207班.xls" 的Workbook_Open巨集  失效
         .Sheets("sh1").Cells.Copy Sheets("sh1").Cells(1, 1)
         .Close True
    End With
    Application.Visible = False
End Sub
因為"  207班.xls"  本身含有巨集   Private Sub Workbook_Open()
應如何  使 "207班.xls" 的巨集  失效 ?

謝謝指導
作者: GBKEE    時間: 2014-4-6 08:21

本帖最後由 GBKEE 於 2014-4-6 08:31 編輯

回復 1# yangjie
  1. Application.EnableEvents = False
複製代碼
工作表視窗上開啟舊檔案時按住 Shift 鍵,亦可
作者: yangjie    時間: 2014-4-6 09:57

回復 2# GBKEE
完全解決  謝謝GBKEE版大
再請教 原始第一 個.xls檔開啟時   Sub Workbook_Open() 應加入???
              使其以唯讀方式開啟!(但巨集仍能使用 因為僅用於查詢)
Private Sub Workbook_Open()
    'Call MakeMenu
    唯讀???
    Application.Visible = False
    Call myForm1
End Sub
作者: GBKEE    時間: 2014-4-6 11:07

回復 3# yangjie
  1. Sub Ex()
  2.     Dim WB As Workbook, V As Object
  3.     Application.EnableEvents = False
  4.     Set WB = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & "207班.xls", ReadOnly:=True)
  5.     With WB
  6.             'VBProject 物件,該物件代表指定活頁簿中的 Visual Basic 專案。唯讀。
  7.         For Each V In .VBProject.VBComponents
  8.             'VBComponents 屬性 傳回包含在一個專案中的元件的集合物件。
  9.           V.CodeModule.DeleteLines 1, V.CodeModule.CountOfLines
  10.             '刪除 程式碼
  11.         Next
  12.    End With
  13.        Application.EnableEvents = True
  14. End Sub
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)