Board logo

標題: 如何在執行VBA時,產生新檔,並將程式碼移動到新檔中 (急) [打印本頁]

作者: hugh0620    時間: 2019-11-19 15:23     標題: 如何在執行VBA時,產生新檔,並將程式碼移動到新檔中 (急)

Dear 大大
         
          撰寫上遇到瓶頸,現在有需要在產生新檔時,可以將按鍵移動到新檔上。
          缺如何在新檔中設定按鍵與設定程式碼。
          提供一個小檔案說明。
          [attach]31427[/attach]
作者: n7822123    時間: 2019-11-20 02:24

本帖最後由 n7822123 於 2019-11-20 02:31 編輯

回復 1# hugh0620


在同路徑下產生 "Test.xls" 檔,並且產生按鈕+產生巨集並且指定給該按鈕

以下是我寫的範例程式,請自行修改成你要的


Application.DisplayAlerts = False
oPath = ThisWorkbook.path
Set wb = Workbooks.Add   '新增新檔

With wb.VBProject.VBComponents.Add(1).CodeModule
  .InsertLines 1, "Sub Test()"
  .InsertLines 2, "Msgbox ""這是測試"""
  .InsertLines 3, "End Sub"
End With

With ActiveSheet.Buttons.Add(50, 50, 100, 30)
  .OnAction = wb.Name & "!Test"
  .Characters.Text = "新增的按鈕"
End With

wb.SaveAs oPath & "\" & "Test.xls", xlNormal
wb.Close True
Set wb = Nothing


[attach]31433[/attach]
作者: hugh0620    時間: 2019-11-20 09:29

本帖最後由 hugh0620 於 2019-11-20 09:50 編輯

回復 2# n7822123


    試著去執行大大提供的檔案,但在:With wb.VBProject.VBComponents.Add(1).CodeModule,這一句就產生錯誤。
作者: quickfixer    時間: 2019-11-20 10:06

回復 3# hugh0620

試試
選項-信任中心-信任中心設定-巨集設定-開發人員巨集設定
-信任存取vba專案物件模型=>打勾
作者: n7822123    時間: 2019-11-20 12:10

回復 3# hugh0620


應該要可以才對,不用常數代號再試看看

With wb.VBProject.VBComponents.Add(vbext_ct_StdModule).CodeModule
  .InsertLines 1, "Sub Test()"
  .InsertLines 2, "Msgbox ""這是測試"""
  .InsertLines 3, "End Sub"
End With

作者: hugh0620    時間: 2019-11-20 12:26

回復 5# n7822123


    quickfixer 大大的回覆,已經可以,感恩!!
   
     另外,我現在在練習跨活頁呼叫程式碼,依照書本上在練習,但還是有錯誤,麻煩請指正,請參閱檔案!!
       [attach]31434[/attach]
       在檔案設定上,當我呼叫完後,如何將呼叫的檔案關掉。
       (因為,使用者在EXCEL上操作能力上比較差,所以,當利用完呼叫的檔案後,可以自行關閉。)
作者: hugh0620    時間: 2019-11-20 14:49

回復 2# n7822123


    大大,你的方式是用模組的方式增加程式碼,再用表單控制項的Button指定巨集。
    但可以用ActiveX控制項的Button的方式,直接在Button裡面寫入程式碼嗎?!!
作者: n7822123    時間: 2019-11-20 23:48

本帖最後由 n7822123 於 2019-11-20 23:51 編輯

回復 7# hugh0620


大大,你的方式是用模組的方式增加程式碼,再用表單控制項的Button指定巨集。
但可以用ActiveX控制項的Button的方式,直接在Button裡面寫入程式碼嗎?!!

按鈕二

[attach]31440[/attach]
作者: n7822123    時間: 2019-11-21 01:11

本帖最後由 n7822123 於 2019-11-21 01:14 編輯

回復 6# hugh0620

另外,我現在在練習跨活頁呼叫程式碼,依照書本上在練習,但還是有錯誤,麻煩請指正,請參閱檔案!!
在檔案設定上,當我呼叫完後,如何將呼叫的檔案關掉。
(因為,使用者在EXCEL上操作能力上比較差,所以,當利用完呼叫的檔案後,可以自行關閉。)

用程式關掉設定引用項目......我不會,因為我都用 Application.Run 來呼叫  

[attach]31441[/attach]
作者: 准提部林    時間: 2019-11-23 13:59

簡單的事情, 就不要複雜化,
將工作表當做樣式表, 保留必要的空白及格式,
複製至新檔案後, 再貼入需要的資料即可~~




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