根据用户在用户表单中的选择附加特定文件

Attaching specific files based on the user's selection in a userform

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

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

    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

附件处理只是 fine.However,程序最终将突出显示的邮件正文显示为我尝试与列表项关联的文件路径:

' 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"

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

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

人们说,只有通过实践和犯错才能学到最好的东西,但让我告诉你,没有一个你至少可以谈论从哪里开始犯错的人是非常令人沮丧的。我希望像我一样处于解决此问题风口浪尖的其他人能够看到这里并拥有自己的 "a-ha!" 时刻。

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

总而言之,我制作了一个与用户表单中项目的数量和顺序相匹配的数组,并重新使用了我为选择主观性所做的循环,我能够通过让第二个循环遍历数组,将用户窗体中的选项与数组中的选项相关联。数组中的每个列表都有一个与之关联的文件路径。

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

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

关于这种阵容方法的一个警告,我在继续研究以弄清楚我做对的事情时不久就发现了这次如果我必须拥有列表中的项目按特定顺序(即按字母顺序排列),但幸运的是,列表项目是短语和完整的句子,不需要排序。

祝您学习编程愉快!