excel - 如何告诉 VBA 根据单元格值将文件保存在特定文件夹中?
问题描述
我创建了一个 Excel 文件,用于在 Word 中创建邮件合并,该文件又包含用于创建 PDF 和 Word 文档的 VBA 代码。现在,代码运行并在为 Word 和 PDF 定义的折叠中创建文件,但是我无法弄清楚如何将 PDF/Word 文档保存在由 Excel 文件中的值定义的文件夹中。
我的意思是,如果我有 10 条记录,并且在 K 列中列出了要获取文件的人。这是我要创建的文件夹的名称。因此,对于列 K 中列出“Ron”的每条记录,这就是文件应该去的地方。我是否需要在代码中定义实际上是“文件夹”的每个人?如果是这样怎么办?
现在存在的代码:
Option Explicit
Const PDF_SAVED As String = "C:\Leader Folders\2019 TR Statements\Ron - TEST ENVIRONMENT\PDFs\"
Const WORD_SAVED As String = "C:\Leader Folders\2019 TR Statements\Ron - TEST ENVIRONMENT\Word Docs\"
Const SOURCE_FILE_PATH As String = "C:\Leader Folders\2019 TR Statements\Ron - TEST ENVIRONMENT\Mail Merge Source Data Ron TEST.xlsx"
Sub TestRun()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim MainDoc As Document, TargetDoc As Document
Dim dbPath As String
Dim recordNumber As Long, totalRecord As Long
Set MainDoc = ActiveDocument
With MainDoc.MailMerge
.OpenDataSource Name:=SOURCE_FILE_PATH, sqlstatement:="SELECT * FROM [Sheet1$]"
totalRecord = .DataSource.RecordCount
For recordNumber = 1 To totalRecord
With .DataSource
.ActiveRecord = recordNumber
.FirstRecord = recordNumber
.LastRecord = recordNumber
End With
.Destination = wdSendToNewDocument
.Execute False
Set TargetDoc = ActiveDocument
TargetDoc.SaveAs2 WORD_SAVED & .DataSource.DataFields("Employee_Name").Value & ".docx", wdFormatDocumentDefault
TargetDoc.ExportAsFixedFormat PDF_SAVED & .DataSource.DataFields("Employee_Name").Value & ".pdf", exportformat:=wdExportFormatPDF
TargetDoc.Close False
Set TargetDoc = Nothing
Next recordNumber
End With
Set MainDoc = Nothing
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
感谢您提供的任何帮助。:)
解决方案
推荐阅读
- javascript - 为什么我的 javascript 代码不起作用,即使它在网站 JSFiddle 上工作?文本框的按钮编辑值
- typescript - 如何在不使用“任何”的情况下键入此功能
- c# - C# System.Speech.Recognition 没有命令?
- r - RunUMAP 给出分段错误
- android - 无法增加模拟虚拟设备的 /system/ 大小
- javascript - 遍历数组并为每个项目返回一个 `Dropdown.Item` 元素
- nservicebus - NServiceBus Sagas 中使用了哪些事务?
- vb.net - 如何获取数据网格中特定行的总和
- reactjs - 如何在 react native.60 中询问位置权限?
- arrays - 如何比较 Dart 中的数组?