簡體   English   中英

從Excel發送Outlook電子郵件,將隱藏工作表中的格式化文本放入電子郵件正文中

[英]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.

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