excel - 使用在下拉列表中选择的单元格编号将行导出到 PDF/Word
问题描述
我正在使用下面的代码将 Excel 工作表中的一行导出到 Word/pdf 文件中。
它正在下载所有非空白行。
我希望当我在单元格下拉列表(“CA2”)中选择参考号时,它只下载选定的行。
Sub Download_Click()
Dim CustRow, CustCol, LastRow, TemplRow, Reference, RefRow As Long
Dim DocLoc, TagName, TagValue, TemplName, FileName As String
Dim CurDt, LastAppDt As Date
Dim WordDoc, WordApp, OutApp, OutMail As Object
Dim WordContent As Word.Range
With Sheet3
TemplRow = .Range("CI1").Value
TemplName = .Range("BV2").Value
Reference = .Range("CA2").Value
DocLoc = Sheet3.Range("CG2").Value
On Error Resume Next
Set WordApp = GetObject("Word.Application")
If Err.Number <> 0 Then
Err.Clear
Set WordApp = CreateObject("Word.Application")
WordApp.Visible = True
End If
LastRow = .Range("A9999").End(xlUp).Row
For CustRow = 3 To LastRow
Set WordDoc = WordApp.Documents.Open(FileName:=DocLoc, ReadOnly:=False)
For CustCol = 1 To 70
TagName = .Cells(2, CustCol).Value
TagValue = .Cells(CustRow, CustCol).Value
With WordDoc.Content.Find
.Text = TagName
.Replacement.Text = TagValue
.Wrap = wdFindContinue
.Execute Replace:=wdReplaceAll
End With
Next CustCol
If .Range("BX2").Value = "PDF" Then
FileName = ThisWorkbook.Path & "\" & .Range("B" & CustRow).Value & "_" & .Range("C" & CustRow).Value & ".pdf"
WordDoc.ExportAsFixedFormat OutputFileName:=FileName, ExportFormat:=wdExportFormatPDF
WordDoc.Close False
Else
FileName = ThisWorkbook.Path & "\" & .Range("B" & CustRow).Value & "_" & .Range("C" & CustRow).Value & ".docx"
WordDoc.SaveAs FileName
End If
Next CustRow
WordApp.Quit
End With
End Sub
解决方案
据我所知,您的代码会将第 3 行的所有行导出到最后一行:
For CustRow = 3 To LastRow
如果您只想导出选定的行,那么您需要做的就是删除该循环并将其替换为单个值,因此它只针对该值运行一次。删除上面的行并替换为:
CustRow = .Range("CA2").Value
确保删除Next CustRow
. 还要确保单元格CA2
包含一个数值,该数值是对您需要的行的直接引用。
推荐阅读
- swift - 关闭工作表后如何重新加载 ForEach 循环项目
- c# - 检查 DateTime 是否有时间
- redux - 我不明白 redux thunk with chaining 的执行流程
- c++ - 加密算法的字符串替换功能无法正常工作?
- php - 如何使用 PHP Mail 函数显示自己的标题文本而不是电子邮件前缀?
- iframe - 通过 onclick 关闭 I 帧视频
- python - 关于 IF - Else 阶梯的说明
- java - 如何显示 Hibernate 5.5.6 的查询
- regex - 使用正则表达式排除指定文本以提取某些数字,如 excel 中的 left()/Right() 函数
- angular - Angular 应用程序类型错误中的 TensorFlow.js