【发布时间】:2020-12-03 05:39:26
【问题描述】:
我想在当前目录中自动创建的新文件夹中将一系列 excel 表保存到 pdf 文件中(我需要对文档中的所有 excel 表执行相同操作)
但是每次我运行代码时,我的桌面上都没有保存文件或创建文件夹(我正在使用的 excel 文件位于桌面中)
我会感谢你的帮助
谢谢
这是我写的函数
Sub PDF_saving()
Dim tbAllBoxes() As Variant
'Put all you textboxes into an array
tbAllBoxes = Array(SuiviConso.Controls("Textbox2"), SuiviConso.Controls("Textbox3"), SuiviConso.Controls("Textbox4"), SuiviConso.Controls("Textbox5"), SuiviConso.Controls("Textbox6"), SuiviConso.Controls("Textbox7"), SuiviConso.Controls("Textbox8"), SuiviConso.Controls("Textbox9"))
Dim tballLabels() As Variant
tballLabels = Array(SuiviConso.Controls("Label2"), SuiviConso.Controls("Label3"), SuiviConso.Controls("Label4"), SuiviConso.Controls("Label5"), SuiviConso.Controls("Label6"), SuiviConso.Controls("Label7"), SuiviConso.Controls("Label8"), SuiviConso.Controls("Label9"))
Dim shAllSheets As Variant
'Put all your worksheets into an array
shAllSheets = Array(ThisWorkbook.Sheets("sheet2"), ThisWorkbook.Sheets("sheet3"), ThisWorkbook.Sheets("sheet4"), ThisWorkbook.Sheets("sheet5"), ThisWorkbook.Sheets("sheet6"), ThisWorkbook.Sheets("sheet7"), ThisWorkbook.Sheets("sheet8"), ThisWorkbook.Sheets("sheet9"))
Dim wbA As Workbook
Dim lastrow2 As Integer
Dim strPath, path As String
Dim filename As String
Dim rng As Range
For i = 1 To UBound(shAllSheets)
If tbAllBoxes(i).Value <> "" Then
filename = shAllSheets(i).Range("A1").Value & Format(Date, "MM-DD-YYYY") & " rapport de consommation " & ".pdf"
strPath = path & filename
MkDir strPath
lastrow2 = shAllSheets(i).Range("A" & Rows.Count).End(xlUp).Row + 1
Set rng = shAllSheets(i).Range("A1 : J" & lastrow2)
rng.ExportAsFixedFormat Type:=xlTypePDF, filename:=ActiveWorkbook.path & filename
End If
Next i
End Sub
【问题讨论】:
-
以上代码有什么问题?还是应该有人试图帮助您在没有您输入的情况下真正发现这一点?
-
好吧,每次我尝试执行代码时都没有输入没有保存文件excel文件位于桌面谢谢我会在上面指定结果
-
strPath = path & filename你还没有填充path -
SO 是关于自己创建代码,而不是从某个地方复制它然后问它为什么不起作用......我建议投票结束这个问题!
-
@TimWilliams 如果未填充,则默认值为空字符串,但更好的做法是定义需要在使用前定义的变量。