[英]MS Word 2013 Form, create a Save as and Submit Button with macro
我在Word 2013中有一個簡單的表單(來自模板),並且具有“提交”按鈕,該按鈕將:
1.從文檔中的字段中收集信息,命名文檔,並另存為。
2.通過電子郵件發送表格以預設電子郵件地址。
多個人將從模板中打開一個文檔
Private Sub CommandButton21_Click()
Dim OL As Object
Dim EmailItem As Object
Dim Doc As Document
Dim strTagNum As String, strNTID As String, strDate As String
strTagNum = ActiveDocument.SelectContentControlsByTitle("TagNum")(1).Range.Text
strNTID = ActiveDocument.SelectContentControlsByTitle("NTID")(1).Range.Text
strDate = ActiveDocument.SelectContentControlsByTitle("Date")(1).Range.Text
Dim strFilename As String
strFilename = strTagNum & "_" & strNTID & "_" & Format(strDate, "ddmmyyyy") & ".docx"
StrPath = "V:\OPS\Central\Shared\ARM\ALERT"
Application.ScreenUpdating = False
Set OL = CreateObject("Outlook.Application")
Set EmailItem = OL.CreateItem(olMailItem)
Set Doc = ActiveDocument
Doc.SaveAs2 strFilename
With EmailItem
.Subject = "CGF ARM - ALERT ADD/DROP/CHANGE"
.Body = "Please Review this Alert for Continuous Improvement"
.To = "john.doe@example.com"
.Importance = olImportanceNormal
.Attachments.Add Doc.FullName
.Send
End With
Application.ScreenUpdating = True
MsgBox "Alert Record Submitted"
Set Doc = Nothing
Set OL = Nothing
Set EmailItem = Nothing
End Sub
(在knacktraining.com上歸功於Neil Malek)
和這個話題
Microsoft Word 2013宏從表單內容保存文件名
我的問題是:
1.如何為saveAs指定文件路徑? 我在宏中有代碼,但是文檔被保存在單個用戶的“文檔”文件夾中。
按下“提交”按鈕后,宏的其余部分將起作用,文檔將被重命名,保存並作為電子郵件發送到預設的電子郵件地址。
我已經從原始問題中進行了更新,我能夠通過反復試驗來回答我的一些先前的問題。
感謝您的時間。
多虧了這個有用的鏈接,我才能夠進一步挖掘並解決問題的最后一部分:
我最終引用了附加&&“ example.com”的字段值,然后引用了.CC字符串,就像一個符咒一樣!
這是全部代碼,我是vba的最終用戶,因此我確定有更簡潔的方法,但這似乎可以滿足我的需要。
Private Sub CommandButton21_Click()
Dim OL As Object
Dim EmailItem As Object
Dim Doc As Document
Dim strTagNum As String, strNTID As String, strDate As String
strTagNum = ActiveDocument.SelectContentControlsByTitle("TagNum")(1).Range.Text
strNTID = ActiveDocument.SelectContentControlsByTitle("NTID")(1).Range.Text
strDate = ActiveDocument.SelectContentControlsByTitle("Date")(1).Range.Text
Dim strFilename As String
strFilename = strTagNum & "_" & strNTID & "_" & Format(strDate, "ddmmyyyy") & ".docx"
Email_Send_To = strNTID & "@example.com"
Application.ScreenUpdating = False
Set OL = CreateObject("Outlook.Application")
Set EmailItem = OL.CreateItem(olMailItem)
Set Doc = ActiveDocument
Doc.SaveAs2 StrPath & "V:\Central\Shared\ARM\ALERT\SubmittedForms\" & strFilename
With EmailItem
.Subject = "Continuous Improvement"
.Body = "Please Review this Alert for Continuous Improvement"
.To = "john.doe@example.com; onsiteengr@example.com; chrip@example.com"
.CC = Email_Send_To
.Importance = olImportanceNormal
.Attachments.Add Doc.FullName
.Send
End With
Application.ScreenUpdating = True
MsgBox "Alert Record Submitted"
Set Doc = Nothing
Set OL = Nothing
Set EmailItem = Nothing
End Sub
感謝所有看過的人以及有用的代碼和注釋!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.