【发布时间】:2019-01-16 14:03:03
【问题描述】:
我在 vba 中有以下代码,一切正常,但我需要更改以附加所选文件夹中的所有文件(现在我必须写下所述附件的名称)。 不幸的是,我在 vba 编程方面是个菜鸟。
Sub Send_Files()
Dim OutApp As Object
Dim OutMail As Object
Dim sh As Worksheet
Dim cell As Range
Dim FileCell As Range
Dim rng As Range
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
Set sh = Sheets("Sheet1")
Set OutApp = CreateObject("Outlook.Application")
For Each cell In sh.Columns("A").Cells.SpecialCells(xlCellTypeConstants)
Set rng = sh.Cells(cell.Row, 1).Range("D1:Z1")
If cell.Value Like "?*@?*.?*" And _
Application.WorksheetFunction.CountA(rng) > 0 Then
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = sh.Cells(cell.Row, 1).Value
.CC = sh.Cells(cell.Row, 2).Value
.Subject = "Decont UTA"
.Body = sh.Cells(cell.Row, 3).Value
For Each FileCell In rng.SpecialCells(xlCellTypeConstants)
If Trim(FileCell.Value) <> "" Then
If Dir(FileCell.Value) <> "" Then
.Attachments.Add FileCell.Value
End If
End If
Next FileCell
.Send 'Or use .Display/Send
End With
Set OutMail = Nothing
End If
Next cell
Set OutApp = Nothing
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub
【问题讨论】:
-
请分享您到目前为止所做的事情!如果您展示您的尝试以及您的问题是什么,您将获得更好的答案。
-
@Nathan 我知道这是可以做到的,我发现自己有几个例子,但我无法适应我的情况(我已经拥有的代码)。 @Sam我现在的问题是我想更改它将附加指定目录中所有文件的代码(例如,我有300封电子邮件每月发送2次,每次都有附件,附件每次都有不同的名称)
-
@yujy 那么为什么不使用示例循环文件并相应地调整您的
.Attachments.Add? -
@Nathan_Sav,我不知道该怎么做。过去 2 天我一直在尝试这样做,但它不起作用,就像我说我是 vba 的新手。