[英]Send an Outlook email from Excel putting formatted text from a hidden worksheet into the body of the email
毫無疑問,我對VBA或宏的經驗很少,不言自明。 如果我在包含所有信息的工作表中,我已經完全可以創建電子郵件了。 一旦我走出該工作表,我就開始遇到問題。 我已經嘗試更改ActiveWorkbook.EnvelopeVisible = True行以引用相關的工作表但是失敗了。 我已經修改了一段時間並嘗試了一些排列,我正在努力理解我需要做什么。
請幫助)!
理想情況下,我希望工作簿只顯示用戶需要查看的工作表; 這意味着隱藏和保護具有公式的工作表,以識別正確的電子郵件地址,主題(各種連接的組件)和主體的單元格范圍(格式和工作表中列出的間隔)(作為正文html或rtf而不是附件)。 所以在按鈕上點擊一個電子郵件被創建並發送(用戶告訴這已經發生)。
我們正在使用Office 2010和Outlook。
我已將腳本從http://support.microsoft.com/kb/816644改編為以下內容:
Sub MArefEmail()
' MArefEmail Macro
' Create email to provide the referral for the service
' Select the range of cells on the active worksheet.
Worksheets("Referrals").Range("P93:AB113").Select
' Show the envelope on the ActiveWorkbook.
ActiveWorkbook.EnvelopeVisible = True
' Set the optional introduction field thats adds
' some header text to the email body. It also sets
' the To and Subject lines. Finally the message
' is sent.
With Worksheets("Referrals").MailEnvelope
.Introduction = "Referral requested by applicant during pre-tenancy interview."
.Item.To = "service@xxx.org.uk"
.Item.CC = "first.last@xxx.org.uk"
.Item.Subject = Range("b43").Text
'.Item.Send
End With
MsgBox "Referral email sent to yyy service"
End Sub
歡迎所有幫助。
背景
我一直在建立一個收入/支出計算器,其中包括福利評估,賬單估算器以及為住房協會建造的一些標志和通知,旨在幫助支持低收入家庭。 它還計算確定(如果相關)由於最近的福利改革(包括地方和國家福利)和儲蓄而導致的任何福利收入損失。 該組織擁有100多個地方當局的財產,每個地方都有自己的規則。
前線工作人員(有些技術恐懼症)通常會將申請人用於他們面前。
該工作簿還確定了符合某些標准的人員,以標記提供可能有用的服務的提議(例如就業和培訓支持)。 有六種不同的服務,每種服務都有許多提供者和限制,有些是基於位置的。 推薦目前的工作方式是標記申請人符合標准(可能從服務中受益)並建議申請人獲得服務。 如果申請人說“是”,則點擊連接的超鏈接,根據位置,服務,家庭構成和財產類型預先填寫“收件人”,“抄送”和“主題”字段。 主題還包括推薦的時間范圍(作為給予客戶)。
每個科目都是定制的。 接收推薦人的人使用定制主題來識別收件箱中的優先級,而無需查看電子郵件的正文; 定制主題設置為允許按照推薦機構的要求進行排序(即每個主題都不同!)。
然后,工作人員需要移動到另一個工作表,將一系列單元格復制並粘貼到電子郵件正文中。 六種推薦類型中的每一種都具有不同的單元格范圍,然后發送電子郵件。 此過程可確保每次推薦所需的信息質量。
速度是改進“工具”的關鍵驅動因素。 我正試圖找到浪費步驟和提高速度。 自動化電子郵件每次訪問最多可節省2分鍾,並減少出錯的可能性。
你理解它需要隱藏某些工件。
工作表是工作簿中集合的一部分。
您可以通過索引迭代它們:
dim iIndx as integer
For iindx=1 to worksheets.count
if worksheets(iindx).name<>"Referrals" then
worksheets(iindx).visible=xlSheetHidden
else
worksheets(iindx).visible=xlSheetVisible
end if
next
或由會員
dim oSheet as worksheet
for each osheet in worksheets
if osheet.name<>"Referrals" then
osheet.visible=.Visible=xlSheetHidden
else
osheet.visible=.Visible=xlSheetVisible
end if
next
因此,您可以在使信封可見之前隱藏所有其他工作表,並在以后取消隱藏它們。
HTH Philip
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.