我正在尝试自动化报告生产和分发流程。我需要做的是创建一个遍历列表的宏(1到20),并为每一行创建一个新文件(单独的Excel文件),粘贴当前的两个选项卡(工作表名称在列J和K中)并将其保存在E列的文件名下。然后宏应打开Outlook并通过附加文件并使用主题,分发列表,电子邮件正文创建电子邮件,如表中所示。
我非常感谢任何帮助,因为我一直在讨论这个问题。
我知道之前已经提出了类似的问题。我试图结合代码来解决这个过程的不同部分。到目前为止,我有以下内容:
enter code here
Sub Create_Files()
Dim MyDateStr As String
Dim wkbCurrent As Workbook
Dim wkbtemp As Workbook
Dim wkbtemp2 As Workbook
Dim MyLocation As String
Dim SheetName As String
Set wkbCurrent = ActiveWorkbook
MyDateStr = wkbCurrent.Sheets("Control").Range("F12")
ChDir "W:\Finance Analysis\Contsys2\DATA\aacorpfinance\_yr 2017\Expense reports\"
If Len(Dir(MyDateStr, vbDirectory)) = 0 Then
MkDir (MyDateStr)
End If
MyLocation = "W:\Finance Analysis\Contsys2\DATA\aacorpfinance\_yr 2017\Expense reports\"
SheetName = wkbCurrent.Sheets("Emails").Range("C2")
Set wkbtemp = Workbooks.Add
wkbCurrent.Sheets(SheetName).Cells.Select
With wkbtemp
wkbtemp.Sheets("Sheet1").Range("A1").PasteSpecial
wkbCurrent.Sheets("M & A").Copy
wkbtemp2.Sheets("Sheet2").Range("A1").Select
ActiveSheet.PasteSpecial Paste:=xlValues
Set wkbtemp = Sheets.Add(After:=Sheets(Sheets.Count))
End Sub
我还没有到达循环和电子邮件部分,但我有一些我在其他地方找到的代码,我试图用作基础。
答案 0 :(得分:0)
这里有一些代码可以帮助您入门
它遍历所有行上的所有单元格
只需添加例程即可创建电子邮件,附件,保存文件等。
Option Explicit
Sub exportIntoEmails()
Dim rng As Range
For Each rng In Range("a1:a20")
Debug.Print "file", rng.Columns("b").Value
Debug.Print "folder", rng.Columns("d").Value
Debug.Print "filename", rng.Columns("e").Value
Debug.Print "subject", rng.Columns("f").Value
Debug.Print "dist. list", rng.Columns("g").Hyperlinks(1).Address
Debug.Print "cc list", Replace(rng.Columns("h").Hyperlinks(1).Address, "mailto:", "")
Debug.Print "email body", rng.Columns("i").Value
Dim aaa As Range
For Each aaa In rng.Columns("j").Resize(1, 2)
Debug.Print "attach", aaa.Value
Next aaa
Next rng
End Sub