嘗試使用VBA通過Excel自動化Outlook電子郵件的過程。使用Replace替換電子郵件中的換行符()
接近我的代碼的末尾,我在Excel單元格中有一個由;#
(例如:;#abacus;#bicycle;#cheese;#
)分隔的值的字符串。
一旦我到達電子郵件創建部分的.HTMLBody部分,我將使用Replace()來刪除分隔符。
.HTMLBody = Replace(.HTMLBody, ";#", ", ")
這很好,因爲它用逗號分隔列表。我還有另一個處理開始的部分(在我的列表開始之前的;#
)。這看起來的具體實例「的文章:」
.HTMLBody = Replace(.HTMLBody, "List: , ", "List:")
現在應改爲:「清單:算盤,自行車,奶酪,」
我試圖到現在刪除多餘的逗號和空格在我的名單結束後(「奶酪」應該以「奶酪」結尾)。列表將始終具有不同長度的值,不一定以奶酪結尾,但始終以;#
爲基礎,以值分隔符結尾。
我知道電子郵件中的最後一個值總是跟着返回<br>
,但是當我嘗試此代碼時,它不起作用(換行符包括括號內的空格以不破壞代碼塊,它們不在我真正的VBA代碼):
.HTMLBody = Replace(.HTMLBody, ", <br><br>", "<br><br>")
基於我的替代值(在這種情況下,旨在取代三次)的瘋狂的系統上,我覺得它應該工作,但事實並非如此。
VBA是否無法搜索帶換行符的字符串並用換行符替換它?
我也覺得有更好的方法來做到這一點 - 我的VBA充其量是劣質的。
嘗試.HTMLBody =左(.HTMLBody,len(.HTMLBody)-2)可以去掉尾部的逗號和空格。不知道我理解問題的第二部分。 – Yaegz
'
'是HTML中的換行符。但是'chr(13)+ chr(10)'或'vbCrLf'是您在VBA中表示回車+換行的方式。也許嘗試那些? – Marc
任何可以顯示整個HTML字符串(作爲原始HTML)的機會 - 或者至少是一個樣本來覆蓋開始,結束和修改區域,它們既是原樣的,也是您希望的樣子? – Hambone