使用FileDialog在Excel上选择多个文件

时间:2016-03-17 19:58:55

标签: excel vba excel-vba

我打算在打开“我的文档”时添加多个文件。我目前有一个命令按钮,当单击时,文件对话框窗口打开。

我能够尽可能多地选择,但是当它通过电子邮件发送到地址时,它只显示2个附件,第一个是电子表格上的表单,第二个是从文件对话框窗口中选择的文件。

如何在电子邮件中添加2个以上的附件?

我尝试过使用For循环,因此可能有很多附件,但这不起作用。

请参阅下文。

Sub SbExtra_Attachment()
'mssgbox do you have another attachment to add ?
Response = MsgBox(prompt:="Do you have any other attachments? 'Yes' or 'No'.", Buttons:=vbYesNo)

    If Response = vbYes Then

        Set fd = Application.FileDialog(msoFileDialogOpen)
            fd.AllowMultiSelect = True

            If fd.Show = -1 Then
                For i = 1 To fd.SelectedItems.Count
                StrFile = fd.SelectedItems(i)
                Next i

            End If

        Else

    End If

End Sub

以上目前最多只附加2个文件。

1 个答案:

答案 0 :(得分:1)

继续前进并做出回答因为我有信心!

也许StrFile = StrFile & ", " & fd.SelectedItems(i)。因为StrFile将始终在循环中被覆盖而不是将它们堆叠起来。不确定该逗号是否是正确的分隔符,但我认为它可以正常工作

修改

看起来文件选择器不会用逗号分隔,它会将它们放在引号中。所以你可能需要StrFile = """" & StrFile & """ """ & fd.SelectedItems(i) & """"。此代码将包含一个前导"",但如果StrFile事先不为空,那么如果循环完成后If Left(StrFile, 3) = """"" " Then StrFile = Right(StrFile, len(StrFile) - 3)就是这种情况,则必须删除前三个字符。