2013-05-15 29 views
3

我對VBA或宏的體驗很少,毫無疑問,它們會變得不言自明。如果我在包含所有信息的工作表中,我可以完美地創建電子郵件。一旦我退出該工作表,那麼我就開始出現問題。我試着改變ActiveWorkbook.EnvelopeVisible = True行來引用相關的工作表,但是失敗了。我修了一會兒,嘗試了一些排列組合,並努力去理解我需要做什麼。從Excel發送Outlook電子郵件,將隱藏工作表中的格式化文本放入電子郵件正文

幫助(請)!

理想情況下,我希望工作簿只顯示用戶需要查看的工作表;這意味着隱藏&保護具有以下公式的工作表:標識正文的電子郵件地址,主題(各種級聯組件)以及正文的單元格區域(工作表中設置的格式和間隔)(正文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 = "[email protected]" 
     .Item.CC = "[email protected]" 
     .Item.Subject = Range("b43").Text 
     '.Item.Send 
    End With 

MsgBox "Referral email sent to yyy service" 

End Sub 

所有幫助歡迎。

背景

我一直在建設有益處的評估,票據估計等一批FO內置了旨在幫助支持低收入家庭住房協會的標誌和通知收入/ expediture計算器。它還計算確定(如果適用)由於最近的福利改革(包括地方和國家利益)和儲蓄而導致的任何福利收入損失。該組織擁有100多個地方當局,每個地方都有自己的規則。

它由前線工作人員(一些技術恐懼)與申請人通常在他們面前使用。

該工作簿還標識滿足特定標準的人員,以標記可能對其有幫助的服務的推薦提議(例如就業&培訓支持)。有六種不同的服務,每種服務都有一些提供者和限制,一些是基於位置的。目前,推薦人通過標示申請人符合標準(可能從服務中受益)並建議向申請人提供服務。如果申請人說「是」,那麼根據地點,服務,家庭構成和財產類型,點擊一個連接的超鏈接,預填充「收件人」,「抄送」主題字段。主題還包括轉介的時限(作爲給予客戶)。

每個科目都是定製的。接受推薦的人使用定製主題來確定收件箱中的優先級,而無需查看電子郵件的正文;定製的主題被設置爲允許按照轉介機構的要求進行分類(即,每一個都是不同的!)。

然後,工作人員需要移動到另一個工作表,以將一系列單元格複製並粘貼到電子郵件正文中。每種引薦類型都有不同的單元格範圍,然後發送電子郵件。該過程確保每次推薦所需的信息質量。

速度是改善「工具」的關鍵驅動力。我正努力尋找廢物步驟和加速改進。自動化電子郵件可以節省長達2分鐘的面試時間,並減少發生錯誤的機率。

回答

1

據我所知,您需要隱藏某些作者信息。

工作表是工作簿中集合的一部分。

您可以通過指數遍歷它們:

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 菲利普

+0

菲利普 - 謝謝你的建議 - 我會給他們走到今天,讓你知道。 HTH Philip - –

+0

謝謝。我沒有意識到的是,我可以進入工作表來執行宏,然後再退出。所以我已經使用邏輯取消隱藏和激活表單來執行例程,然後彈出回可見的「用戶」表單並重新隱藏。現在起作用了。我很感激(因爲我一直呆在那裏,感覺溫和而欣喜)。謝謝。 –

+0

稍微更新了代碼 –

相關問題