【问题标题】:Outlook VBA macro to create txt fileOutlook VBA 宏创建 txt 文件
【发布时间】:2013-09-20 12:53:59
【问题描述】:

我对 VBA 不太了解,需要以下方面的帮助:

我想创建一个 txt 文件并将其保存在特定位置(覆盖现有同名文件)。

文本文件必须包含电子邮件主题中的最后一个单词,即帐号。为了便于说明,我将调用帐号Variable1

如果电子邮件主题 = Account Recon - 10201314050019434586

然后变量1 = 10201314050019434586

必须创建/替换的文本文件: C:\Users\tenba1\Documents\QlikView\Account Recons\Recon_Acct.txt

文件中的文本必须是: SET vAcct = 'Variable1';

所以在这个例子中,文件中的文本必须是: SET vAcct = '10201314050019434586';

宏必须查看主题中的最后一个单词(即最后一个空格之后的所有内容) - 帐号并不总是 20 位数字。

提前致谢

【问题讨论】:

    标签: vba outlook


    【解决方案1】:

    这应该可以解决问题。这是一个宏脚本,它获取顶部打开的电子邮件的主题并将帐号写入 Recon_Acct.txt。如果没有数字,则文本将为 SET vAcct = ''。每次执行脚本时,文件都会被覆盖。

    Sub writeSubjectToFile()
        Const FILEPATH = "C:\Users\tenba1\Documents\QlikView\Account Recons\Recon_Acct.txt"
        Dim objEmailItem As Object, strSubject
        Dim strSubject As String
        Dim strText As String
    
        Set objEmailItem = Application.ActiveInspector.CurrentItem
    
        strSubject = objEmailItem.subject
        strText = Trim(Right(strSubject, Len(strSubject) - InStr(1, strSubject, "-")))
    
        Open FILEPATH For Output As 1
        Print #1, "SET vAcct = '" & strText & "';"
        Close #1
    End Sub
    

    【讨论】:

    • 谢谢!这也有效:Public Sub saveAcct(itm As Outlook.MailItem) Const Filepath = "C:\Users\tenba1\Documents\QlikView\Account Recons\Recon_Acct.txt" Const ForWriting = 2 strAccNumber = Trim(Mid(itm.Subject, InStrRev(itm.Subject, " "), Len(itm.Subject) - InStr(1, itm.Subject, " "))) Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile(Filepath, ForWriting) objFile.Write ("SET vAcct = '" & strAccNumber & "';") Set objFile = Nothing Set objFSO = Nothing End Sub
    猜你喜欢
    • 1970-01-01
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多