返回列表 上一主題 發帖

如何在執行VBA時,產生新檔,並將程式碼移動到新檔中 (急)

如何在執行VBA時,產生新檔,並將程式碼移動到新檔中 (急)

Dear 大大
         
          撰寫上遇到瓶頸,現在有需要在產生新檔時,可以將按鍵移動到新檔上。
          缺如何在新檔中設定按鍵與設定程式碼。
          提供一個小檔案說明。
          新增新檔同時將舊檔程式碼複製到新檔中.rar (14.19 KB)
學習才能提升自己

本帖最後由 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


新檔產生按鈕與巨集.rar (34.51 KB)
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

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

回復 2# n7822123


    試著去執行大大提供的檔案,但在:With wb.VBProject.VBComponents.Add(1).CodeModule,這一句就產生錯誤。
學習才能提升自己

TOP

回復 3# hugh0620

試試
選項-信任中心-信任中心設定-巨集設定-開發人員巨集設定
-信任存取vba專案物件模型=>打勾

TOP

回復 3# hugh0620


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

With wb.VBProject.VBComponents.Add(vbext_ct_StdModule).CodeModule
  .InsertLines 1, "Sub Test()"
  .InsertLines 2, "Msgbox ""這是測試"""
  .InsertLines 3, "End Sub"
End With
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

回復 5# n7822123


    quickfixer 大大的回覆,已經可以,感恩!!
   
     另外,我現在在練習跨活頁呼叫程式碼,依照書本上在練習,但還是有錯誤,麻煩請指正,請參閱檔案!!
       跨活頁簿呼叫巨集.rar (20.07 KB)
       在檔案設定上,當我呼叫完後,如何將呼叫的檔案關掉。
       (因為,使用者在EXCEL上操作能力上比較差,所以,當利用完呼叫的檔案後,可以自行關閉。)
學習才能提升自己

TOP

回復 2# n7822123


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

TOP

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

回復 7# hugh0620


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

按鈕二

新檔產生按鈕與巨集1120.rar (43.95 KB)
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

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

回復 6# hugh0620

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

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

跨活頁簿呼叫巨集.rar (21.38 KB)
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

簡單的事情, 就不要複雜化,
將工作表當做樣式表, 保留必要的空白及格式,
複製至新檔案後, 再貼入需要的資料即可~~
EXCEL參考資料:
http://blog.xuite.net/smile1000mile/blog

TOP

        靜思自在 : 吃苦了苦、苦盡廿來,享福了福、福盡悲來。
返回列表 上一主題