【问题标题】:Attaching specific files based on the user's selection in a userform根据用户在用户表单中的选择附加特定文件
【发布时间】:2016-05-13 09:43:09
【问题描述】:

对于这个项目的下一部分,我一直致力于加快向办公室客户发送电子邮件的速度,我希望根据用户选择的项目从指定的文件路径中获取特定的附件在用户窗体上。这些电子邮件将始终发送完全相同的文件,因此用户手动附加文件的时间越少,效果就越好。我的第一个假设是我需要一个循环来执行此操作,所以我开始做我的基础工作,但现在我通常被卡住了。

第一个循环抓取用户从用户表单中选择的内容:

    For i = 0 To List1.ListCount - 1
        If List1.Selected(i) Then
            Counter = Counter + 1
            msg = msg & "<font style = 'background: yellow'>" & List1.List(i) & "<br />"
        Else: If Counter = 0 Then End
    End If
    Next

第二个循环根据上面的选择附加文件:

    For i = 0 To List1.ListCount - 1
        If List1.Selected(i) Then
            Counter = Counter + 1
            .Attachments.Add List1.List(i)
        Else: If Counter = 0 Then End
    End If
    Next

附件处理很好。但是,程序最终将突出显示的消息正文显示为我尝试与列表项关联的文件路径:

' test files
List1.List(0) = "C:\Users\jmarkman\Dropbox\Python Practice\ex1.py"
List1.List(1) = "C:\Users\jmarkman\Dropbox\Python Practice\ex2.py"
List1.List(2) = "C:\Users\jmarkman\Dropbox\Python Practice\ex3.py"
List1.List(3) = "C:\Users\jmarkman\Dropbox\Python Practice\ex4.py"
List1.List(4) = "C:\Users\jmarkman\Dropbox\Python Practice\ex5.py"
List1.List(5) = "C:\Users\jmarkman\Dropbox\Python Practice\ex6.py"

所以我的问题是,如何将这些文件路径与用户表单中列表框中的相应项目相关联?我很确定虽然它有效,但该过程更改了列表项,因为我为它们分配了不同的值。

我不确定这最终会变得多么复杂或简单,因此非常感谢您的时间和耐心。

【问题讨论】:

    标签: vba outlook email-attachments outlook-2010


    【解决方案1】:

    人们说过,一个人只要通过实践和犯错就能学得最好,但让我告诉你,没有一个你至少可以谈论从哪里开始犯错的人是非常令人沮丧的。我希望像我一样即将解决这个问题的其他人能够看到这里并拥有自己的“啊哈!”时刻。

    当我第一次问这个问题时,我选择了将我的所有文件路径位置放在一个数组中的正确路径,并且通过使用循环遍历它,我沿着正确的路径走得更远。我像一开始一样声明了带有范围的 myAttach 数组,但与我在谷歌研究期间看到的任何示例不同,我保持我的第二个附件循环相同,但只是将 List1.List(i) 更改为 myAttach(i)。这使脚本的轮子转动并执行了我需要它执行的所有功能。

    总而言之,我创建了一个与用户表单中项目的数量和顺序相匹配的数组,并重新使用了我为选择主观性而创建的循环,我能够关联选择通过让第二个循环通过数组,在用户表单中到数组中的那些。数组中的每个列表都有一个与之关联的文件路径。

    ' example
    myAttach(0) = "[filepath]"
    myAttach(1) = "[filepath]"
    myAttach(2) = "[filepath]"
    myAttach(3) = "[filepath]"
    ' ... and so on ...
    

    它有助于将数组和列表项可视化为两个并排的列;列表中的第一项与数组中的第一项平行,因此可以被第二个循环识别。如果没有出现心理图像,请尝试将一些数据输入到两个或更多 Excel 列中以见证关系或查看Matricies

    这种排列方法的一个警告,我在继续研究以弄清楚我到底做对了什么之后不久发现这一次如果我必须将列表中的项目放在一个特定的顺序(即字母顺序),但幸运的是列表项是短语和完整的句子,不需要排序。

    祝学习和编程愉快!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-10
      • 1970-01-01
      • 2018-07-25
      • 2019-04-01
      • 1970-01-01
      • 2020-02-09
      相关资源
      最近更新 更多