簡體   English   中英

MS Word 2013表單,使用宏創建另存為和提交按鈕

[英]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指定文件路徑? 我在宏中有代碼,但是文檔被保存在單個用戶的“文檔”文件夾中。

  1. 我如何告訴宏從表單中提取用戶名並將其發送到“ username” @ example.com?

按下“提交”按鈕后,宏的其余部分將起作用,文檔將被重命名,保存並作為電子郵件發送到預設的電子郵件地址。

我已經從原始問題中進行了更新,我能夠通過反復試驗來回答我的一些先前的問題。

感謝您的時間。

多虧了這個有用的鏈接,我才能夠進一步挖掘並解決問題的最后一部分:

excel:參考單元格值以獲取選定行的電子郵件收件人?

我最終引用了附加&&“ 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.

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