【发布时间】:2018-10-05 01:15:48
【问题描述】:
在 VBA 脚本中,我正在尝试编写一个具有以下签名的子函数
Sub(taskName As String , myGroup As String, myFile As String ,myPer As String, RelatedTasks() As String )
Dim olApp As Outlook.Application
Dim m As Outlook.MailItem
Set olApp = New Outlook.Application
Set m = olApp.CreateItem(olMailItem)
With m
.display
.To = "somewhere@someplace.com"
.Subject = "Test Events"
.HTMLBody/.body = ...
End Sub
邮件正文如下:
大家好,
请找到以下信息。
TASK:任务名称
相关任务:RelatedTasks()
文件:我的文件
个人:我的个人
在子函数中,冒号左边的模式总是不变的,右边会根据函数的输入而改变。
为此,我正在阅读包含所需签名的 Template.htm。
Template.htm 包含:
Hello All,
Please find the following information.
TASK: {{mytask}}
RELATED TASK:{{myRelatedTasks}}
FILE : {{myFile}}
PERSON : {{myPerson}}
在 VBA 代码中,我正在替换所有字段。
我面临的问题是 {{mytask}} 和 {{related tasks}} 也应该有一个 HTML 参考。我已成功添加 mytask 的链接。点击邮件中的 mytask 将跳转到相应的链接。
<a href = "www.something.com&id ={{taskID}}>
{{mytask}}.....<a href = "www.xxx.com&id={{}}>{{myRelatedTasks}}
但由于它是一个数组,因此无法将其添加到相关任务中。
我的 VBA 代码:
Option Explicit
Sub CreateNewMail()
Dim olApp As Outlook.Application
Dim m As Outlook.MailItem
Dim sigPath As String, sigText As String
Dim fso As Scripting.FileSystemObject
Dim ts As Scripting.TextStream
Dim t As String
Dim r(5) As Variant
t = "233444:dshfjhdjfdhjfhjdhfjdhfjd"
r(0) = "122343:dsjdhfjhfjdh"
r(1) = "323243:jfjfghfjhjddj"
r(2) = "834783:gffghjkjkgjkj"
Set olApp = New Outlook.Application
Set m = olApp.CreateItem(olMailItem)
sigPath = "C:\Users\Pavan-Kumar\Desktop\vbs\TestEvents.htm"
Set fso = New Scripting.FileSystemObject
Set ts = fso.OpenTextFile(sigPath)
sigText = ts.ReadAll
ts.Close
Set fso = Nothing
sigText = Replace(sigText, "{{mytask}}", t)
sigText = Replace(sigText, "{{myRelatedTasks}}", Join(r, "<br>"))
With m
.display
.To = "somewhere@someplace.com"
.Subject = "Test Events"
.HTMLBody = sigText
End With
End Sub
而且,当我加入相关任务时,我希望它们以缩进方式排列在另一个之下。我尝试将“\t”作为分隔符,但没有成功。
我当前在 Outlook 邮件中的操作:
【问题讨论】:
-
@MathieuGuindon 感谢您的提及。我已经更新了问题。请看一下。
-
@GopalKrishna 尽管我给了你一个答案,但我同意 Mat 这不是一个“问题”,而是听起来你是在要求某人为你编写代码。我在回答中采取了中间道路,给你一个你可以遵循的“计划”。然而,这不是本网站的设计目的。单独询问/研究每个问题会更好。
-
@Blackhawk 感谢您的回答。我会尽力做你推荐的。其实我想要我的相关任务在不同的行。如何实现这个
-
@Blackhawk 我用 "\n" 试过了,它不起作用