|
本帖最后由 小声说话666 于 2023-8-24 22:41 编辑
CHATGPT出代码,我调试,一下午搞出一个 “文件夹所有OFFICE文件转PDF”, 窗体及按钮看不懂。请大神完善一下。
此代码为 WPS VBA
如果您想要实现点击按钮后弹出文件夹选择对话框,可以使用 UserForm 和 CommandButton 控件来实现。
Sub ConvertToPDF()
Dim folderPath As String
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
Dim wpsApp As Object
Dim wpsDoc As Object
Dim xlApp As Object
Dim xlWPS As Object
Dim dialog As FileDialog
' 创建 UserForm
Dim frmFileDialog As New UserForm
' 创建 CommandButton
Dim btnSelectFolder As New CommandButton
With btnSelectFolder
.Caption = "选择文件夹"
.Left = 10
.Top = 10
.Width = 100
.Height = 30
End With
' 将 CommandButton 添加到 UserForm
frmFileDialog.Controls.Add btnSelectFolder
' 显示 UserForm
frmFileDialog.Show
' 打开文件夹选择对话框
Set dialog = Application.FileDialog(msoFileDialogFolderPicker)
With dialog
.Title = "选择文件夹"
.AllowMultiSelect = False
If .Show = -1 Then
folderPath = .SelectedItems(1)
Else
MsgBox "未选择文件夹!"
Exit Sub
End If
End With
' 获取文件夹对象
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(folderPath)
' 初始化 WPS 应用程序
Set wpsApp = CreateObject("KWps.Application")
' 遍历文件夹及其子目录
For Each objFile In objFolder.Files
' 检查文件扩展名
If LCase(Right(objFile.Name, 4)) = ".doc" Or _
LCase(Right(objFile.Name, 5)) = ".docx" Or _
LCase(Right(objFile.Name, 4)) = ".wps" Or _
LCase(Right(objFile.Name, 4)) = ".dot" Or _
LCase(Right(objFile.Name, 5)) = ".dotm" Then
' 打开文件
Set wpsDoc = wpsApp.Documents.Open(objFile.Path)
' 另存为 PDF 文件
wpsDoc.SaveAs2 objFile.Path & ".pdf", 17 ' 17 表示 PDF 格式
' 关闭文件
wpsDoc.Close
Set wpsDoc = Nothing
ElseIf LCase(Right(objFile.Name, 4)) = ".xls" Or _
LCase(Right(objFile.Name, 5)) = ".xlsx" Then
' 初始化 Excel 应用程序
Set xlApp = CreateObject("ket.Application")
' 打开文件
Set xlWPS = xlApp.Workbooks.Open(objFile.Path)
' 另存为 PDF 文件
xlWPS.ExportAsFixedFormat Type:=0, FileName:=objFile.Path & ".pdf"
' 关闭文件
xlWPS.Close
Set xlWPS = Nothing
' 退出 Excel 应用程序
xlApp.Quit
Set xlApp = Nothing
End If
Next objFile
' 释放对象
Set objFile = Nothing
Set objFolder = Nothing
Set objFSO = Nothing
' 退出 WPS 应用程序
wpsApp.Quit
Set wpsApp = Nothing
MsgBox "转换完成!"
' 关闭 UserForm
Unload frmFileDialog
End Sub
现在,代码会创建一个简单的 UserForm,其中包含一个名为 "选择文件夹" 的按钮。当用户点击按钮时,将弹出文件夹选择对话框,选择文件夹后,代码将继续执行文件转换操作。同时,代码还添加了一行来关闭 UserForm。
请注意,在 UserForm 中使用命令按钮之前,需要在 VBA 编辑器中右键单击项目资源管理器中的此工作簿,并选择"插入"->"用户窗体",然后命名为 "frmFileDialog"。
|
|