【问题标题】:VBA script to save attachment as part of subject line for file name将附件保存为文件名主题行的一部分的 VBA 脚本
【发布时间】:2013-07-12 16:15:32
【问题描述】:

我需要一种解决方案,将 VBA 脚本添加到 Outlook 中的规则,该规则在电子邮件主题行中搜索短语“was”之前的单词,然后使用该单词将附件(excel 文件)保存在指定文件夹中。

我对 InStr() 方法很熟悉,但无论出于何种原因,我都无法弄清楚如何在当前代码中使用它。有人有什么想法吗?

这是我在添加新行之前的当前工作脚本:

Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
Dim saveFolder2 As String
Dim attname As String
Dim fso As FileSystemObject
Dim stream As TextStream


saveFolder = "C:\Users\testuser\Desktop\Files\Reports"
saveFolder2 = "\\SERVER\C\Users\Service\Documents"
    For Each objAtt In itm.Attachments
        objAtt.SaveAsFile saveFolder & "\" & objAtt.DisplayName
        attname = objAtt.DisplayName
        Call updatelog(attname)
        objAtt.SaveAsFile saveFolder2 & "\" & objAtt.DisplayName
        Call updatelog(attname)
        Set objAtt = Nothing
    Next

谢谢

【问题讨论】:

  • 举一个你分析的电子邮件主题的例子......
  • 情况不同。主题行的示例可能是:“Report1 2012 于 2013 年 7 月 11 日晚上 11:58:35 运行”我想在“是”一词之前提取“2012”。它可以是从 2010 年到 2013 年的任何一年,所以我试图让这行代码读取它并将其插入到保存的附件的文件名中。

标签: string vba outlook extract


【解决方案1】:

这是一个通用函数,它将返回触发词之前的词。

Function WordBeforeTrigger(sInput As String, sTrigger As String) As String

    Dim vaSplit As Variant
    Dim i As Long
    Dim sReturn As String

    vaSplit = Split(sInput, Space(1))

    For i = LBound(vaSplit) + 1 To UBound(vaSplit)
        If vaSplit(i) = sTrigger Then
            sReturn = vaSplit(i - 1)
            Exit For
        End If
    Next i

    WordBeforeTrigger = sReturn

End Function

这是在即时窗口中的使用方法

?wordbeforetrigger("Report1 2012 was run on 7/11/2013 at 11:58:35pm","was")
2012
?wordbeforetrigger("I was home","was")
I
?wordbeforetrigger("","was")

?wordbeforetrigger("doesn't contain","was")

那些空行是空字符串。您需要编写代码来说明何时找不到单词并返回空字符串。如果 Len(sReturn)=0 或类似的东西,您可以修改函数以返回 sInput。

您似乎想传入 DisplayName 和“was”,它将返回该值。您可以将其存储在字符串变量中并将其用作附件名称。

使用 Instr 没有任何问题,但您会注意到我没有。我更喜欢使用拆分并导航结果数组而不是 Instr。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-13
    • 2021-11-14
    • 2014-04-20
    • 2017-12-18
    • 2017-12-07
    • 2016-08-30
    • 2010-10-05
    • 1970-01-01
    相关资源
    最近更新 更多