簡體   English   中英

打開時自動執行 VBA Word 宏

[英]Auto execute VBA Word macro on open

我有這個代碼,我在另一個網站上找到了這個代碼,它完全按照我的意願執行,除了我寧願讓 word 在模板的打開時執行宏。 我嘗試過 Private Sub AutoOpen() 和 Private Sub document_open() 但似乎都不起作用。

我也不確定是否應該將其作為 a.dotm 或.docm。 任何幫助表示贊賞,謝謝。

Sub CreateInvoiceNumber()

Invoice = System.PrivateProfileString("C:\Users\user\Documents\a\" & _ 
    "invoice-number.txt", "InvoiceNumber", "Invoice")

If Invoice = "" Then
    Invoice = 1
Else
    Invoice = Invoice + 1
End If

System.PrivateProfileString("C:\Users\user\Documents\a\" & _
    "invoice-number.txt", "InvoiceNumber", "Invoice") = Invoice

' Insert the number in the document
ActiveDocument.Range.InsertBefore Format(Invoice, "#")

ActiveDocument.SaveAs2 FileName:= _
 "C:\Users\user\Documents\a\inv" & Format(Invoice, "#") & ".docx" _
 , FileFormat:=wdFormatXMLDocument, LockComments:=False, Password:="", _
 AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, _
 EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData _
 :=False, SaveAsAOCELetter:=False, CompatibilityMode:=14
    
End Sub

您擁有的是文檔而不是模板。 當您誤用術語模板時會令人困惑,因為它指的是創建新文檔的 dotx/dotm 文件。 每個文檔都附加到創建它的模板。 如果未使用特定模板,則它將附加到 Normal 模板。

要(錯誤)使用文檔作為模板,您需要將CreateInvoiceNumber重命名為AutoOpen ,或者將例程中的代碼作為Document_Open放入 ThisDocument 模塊

在此處輸入圖像描述

理想情況下,您會正確使用 Word 並創建可以通過 File | 訪問的發票模板。 New,在這種情況下,ThisDocument 例程將被命名為Document_New

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM