我有一个名为"家庭音频规划"的excel文件(28-3-2013)日期将不断变化,但文本将是相同的.那么如何将这些文件附加到Outlook?
Sub Test()
Dim OutApp As Object
Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = ""
.CC = ""
.BCC = ""
.Subject = "This is the Subject line"
.Body = "Hello World!"
.Attachments.Add ("C:\Users\Desktop\Today\Home Audio for Planning (28-3-2013).xlsx")
.Display
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
Run Code Online (Sandbox Code Playgroud) 我搜索并搜索了答案,所以我会在这里发布.我正在尝试创建一个宏,它将2个星期的邮件从我的收件箱移动到我为每个同事创建的特定文件夹.宏成功循环通过超过两周的所有收件箱邮件.但是,当我使用.SenderEmailAddress它时,它会返回一大串字符而不是###@####.com.我如何获取发件人的电子邮件地址?
如果没有给出确切的字符串(安全问题),这就是我用"X"代替一些字符的方法:
/o=XXXXXXX/ou=Exchange Administrative Group (XXXXXXXXXXXXXXX)/cn=Recipients/cn=XXXXX@XXXXX
Run Code Online (Sandbox Code Playgroud)
字符串的末尾是主题行文本.
任何帮助将不胜感激!:-)
当用户单击一行中的单元格时,我使用此VBA代码发送电子邮件.
我想在我的电子邮件正文中添加带图像的签名.我怎么能修改我的代码把它放进去?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = Range("BL1").Column Then
If Target.Row > 7 And Target.Value = "Take Action" Then
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
strbody = "<p style='font-family:calibri;font-size:16'>" & "Dear Sirs," & "<br><br>" & vbNewLine & vbNewLine & _
"F.A.O: " & "<b>" & Range("B" & ActiveCell.Row) & "</b>" & "," & vbNewLine & vbNewLine & _
"<br>" & "This is an urgent update on the status of your account." & "<br>" & …Run Code Online (Sandbox Code Playgroud) 当您在Outlook中单击全部回复时,它将打开一个新的电子邮箱,但会在您的电子邮件正文下方显示上一个电子邮件主题.我想在Outlook和输入信息中全部回复所选的电子邮件.我想从Excel中的宏中完成所有这些操作.我的问题是,如果我尝试写回复全部的正文,它会删除整个以前的电子邮件主题.
Sub test()
Dim mail 'object/mail item iterator
Dim replyall 'object which will represent the reply email
For Each mail In Outlook.Application.ActiveExplorer.Selection
If mail.Class = olMail Then
Set replyall = mail.replyall
With replyall
'.Body = "blah blah hello world" '<-- uncomment and it will delete the thread
.Display
End With
End If
Next
End Sub
Run Code Online (Sandbox Code Playgroud)
注意:我最接近的是这个,但它删除了我的签名,电子邮件分隔符和最新电子邮件中的标题信息:
.Body = "blah blah hello world" & mail.body
Run Code Online (Sandbox Code Playgroud)
任何解决方案都赞赏!谢谢!
如何在其中包含电子邮件的文件夹中获取最新日期?
VBA-Outlook中是否有一种方法可以获取电子邮件的最新日期?
例如:我的文件夹中有三封邮件,内容相同,但接收时间不同。如何从这三个电子邮件中获取最新电子邮件?
我有大约90 .msg,我需要打开的outlook文件,将excel附件转换为.csv文件并保存.目前,下面的代码只是打开.msg outlook文件,但出现错误:
如何允许打开.msg文件.
脚本:
Sub OpenMSGRenameDownloadAttachement()
Dim objOL As Outlook.Application
Dim Msg As Outlook.MailItem
Dim MsgCount As Integer
Set objOL = CreateObject("Outlook.Application")
'Change the path given month, ie. do this for Jan, Feb, April
inPath = "C:\January Messages"
thisFile = LCase(Dir(inPath & "\*.msg"))
Do While thisFile <> ""
Set Msg = objOL.Session.OpenSharedItem(thisFile)
Msg.Display
MsgBox Msg.Subject
thisFile = Dir
Loop
Set objOL = Nothing
Set Msg = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud) 如果之前有人询问过,请指出正确的方向.我似乎找不到任何有用的谷歌技巧.
我有以下代码,它读取这样的字符串; 停电StartDate:05/10/11 23:59 EST
并提取日期信息,即05/10/11 23:59
sStartTime = Mid(objItem.Body, 18, 15) ' Extract the start time
Debug.Print "sStartTime after reading: " & sStartTime
sStartTime = Format(sStartTime, "dd/mm/yy hh:mm") ' Format date correctly
Debug.Print "sStartTime after formatting: " & sStartTime
Run Code Online (Sandbox Code Playgroud)
这是我通常得到的输出:
sStartTime after reading: 05/10/11 23:59
sStartTime after formatting: 10/05/11 23:59
Run Code Online (Sandbox Code Playgroud)
但有时它甚至交换日期和年份:
sStartTime after reading: 14/07/11 23:59
sStartTime after formatting: 11/07/14 23:59
Run Code Online (Sandbox Code Playgroud)
然后CDate完全填充东西,将日期转换为1931年的事情...任何帮助将日期字符串转换为日期对象将非常感激.
===============
编辑:应该在最初的帖子中提到这一点.读取字符串背后的想法是转换为Date对象,以便我可以创建日历约会.目前我用这个;
dStartTime = CDate(sStartTime)
Run Code Online (Sandbox Code Playgroud)
我认为是问题线,sStartTime ="29/09/11 23:00"(dd/mm/yy hh:mm)和dStartTime ="11/9/2029 11:00:00 PM"
所以很明显会出现一些转换问题,但是我不知道为了将29/09/11 23:00变成等效的日期对象,我想用什么格式来提供CDate函数.
我一直试图找到一种方法来查找邮件发送到的邮件地址.考虑以下:
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Dim mai As MailItem
Dim intInitial As Integer
Dim intFinal As Integer
Dim strEntryId As String
Dim intLength As Integer
intInitial = 1
intLength = Len(EntryIDCollection)
intFinal = InStr(intInitial, EntryIDCollection, ",")
Do While intFinal <> 0
strEntryId = Strings.Mid(EntryIDCollection, intInitial, (intFinal - intInitial))
Set mai = Application.Session.GetItemFromID(strEntryId)
intInitial = intFinal + 1
intFinal = InStr(intInitial, EntryIDCollection, ",")
Loop
strEntryId = Strings.Mid(EntryIDCollection, intInitial, (intLength - intInitial) + 1)
MsgBox strEntryId
Set mai = Application.Session.GetItemFromID(strEntryId) …Run Code Online (Sandbox Code Playgroud) 我对VBA不是很了解,需要以下方面的帮助:
我想创建一个txt文件并将其保存在特定位置(用相同的名称覆盖现有文件).
文本文件必须计算电子邮件主题中的最后一个单词,该单词将是一个帐号.出于解释的目的,我将调用帐号Variable1.
如果电子邮件主题= 帐户侦察 - 10201314050019434586
然后Variable1 = 10201314050019434586
必须创建/替换的文本文件:C:\ Users\tenba1\Documents\QlikView\Account Recons\Recon_Acct.txt
文件中的文本必须是: SET vAcct ='Variable1';
因此,在此示例中,文件中的文本必须为: SET vAcct ='10201314050019434586';
宏必须查看主题中的最后一个单词(即最后一个空格后的所有内容) - 帐号不一定是20位数.
提前致谢
基本上我的代码工作方式是将来自Outlook的传入电子邮件主题与Excel中的列表列进行比较 - 据称是那些现有的电子邮件.如果传入电子邮件与任何记录匹配,则它在Excel中显示值.但是,我注意到,如果Excel中的数据包含#标签(#)值,即使传入的电子邮件与Excel中的电子邮件不同,代码也会将其标记为匹配.
If emlSubj Like "*" & strSubj & "*" Then
Debug.Print strSubj
Run Code Online (Sandbox Code Playgroud)
代码有问题还是LIKE功能的限制?
我的老板在Outlook中安排了(不同项目)的会议日历.他希望我从Outlook日历中编写VBA,以便获取数据(项目,日期和时间),并在Excel工作表中输入每天在每个项目上花费的时间.Excel工作表包含以列形式编写的所有项目,以及一周中每天的一列.
代码应该能够在当天插入每个项目上花费的时间,并在Excel工作表中插入项目.
我之前从未使用过Excel.