Excel VBA 获取Windows系统下特殊文件夹路径(比如:桌面,用户)

WScript.Shell对象SpecialFolders属性

WshShell对象的SpecialFolders属性返WshSpecialFolders 对象,该对象是一个特殊文件夹集合,其中包含整套Windows特殊文件夹

Reference: Windows Scripting Host Object Model

'Reference: NULL
Sub SpecialFoldersInfoMethod0()
    Debug.Print "c:" & Environ("HOMEPATH") & "\Desktop"
End Sub
'Reference: Windows Scripting Host Object Model
Private Sub SpecialFoldersInfoMethod1()
    Dim SF As New wshshell
    Debug.Print desk.SpecialFolders("desktop")
    Set SF = Nothing
End Sub
'Reference: Windows Scripting Host Object Model
Private Sub SpecialFoldersInfoMethod2()
    Dim SF As Object
    Set SF = CreateObject("Wscript.shell")
    Debug.Print SF.SpecialFolders("desktop")
    Set SF = Nothing
End Sub
'Reference: Windows Scripting Host Object Model
'Name		  KeyWrod
'------------------------------------------------
'公共桌面: 	: ("AllUsersDesktop")
'公共程式: 	: ("AllUsersStartMenu")
'公共程序: 	: ("AllUsersPrograms")
'公共启动: 	: ("AllUsersStartup")
'桌面:    	: ("Desktop")
'收藏:    	: ("Favorites")
'字体:    	: ("Fonts")
'我的文档: 	: ("MyDocuments")
'网络:    	: ("NetHood")
'打印机:   	: ("PrintHood")
'程序:    	: ("Programs")
'最近: 		: ("Recent")
'发给: 		: ("SendTo")
'开始菜单: 	: ("StartMenu")
'启动: 		: ("Startup")
'模板:		: ("Templates")
'应用程序数据	: ("AppData")
'------------------------------------------------
Private Function SpecialFoldersInfoMethod3(iSpecialFolder As String) As String
    Dim SF As Object
    Set SF = CreateObject("Wscript.shell").SpecialFolders
    Debug.Print SF(iSpecialFolder)
    Set SF = Nothing
End Function

VS2010 VB

'app.path是VB6中的用法.
'vb2010属于VB.Net,VB.Net中使用如下方法:
'Application.StartupPath '获取当前程序路径,如果你的程序在C:\App\,结果为 C:\App
'AppDomain.CurrentDomain.SetupInformation.ApplicationBase '获取当前程序路径,如果你的程序在C:\App\,结果为 C:\App\
'后者比前者的结果会多一个"\"

System.Environment.CurrentDirectory;
  • 0
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是将桌面下的1文件夹Excel表进行批量转换为PDF,并使用用户窗体显示转换进度的VBA代码: ``` Sub ConvertExcelToPDF() Dim FSO As Object Dim SourceFolder As Object Dim FileItem As Object Dim ExcelApp As Object Dim ExcelBook As Object Dim SavePath As String Dim i As Long Dim TotalFiles As Long '设置源文件夹路径 Set FSO = CreateObject("Scripting.FileSystemObject") Set SourceFolder = FSO.GetFolder(Environ("USERPROFILE") & "\Desktop\1") '获取文件夹中的Excel表数量 TotalFiles = SourceFolder.Files.Count '初始化Excel应用程序 Set ExcelApp = CreateObject("Excel.Application") ExcelApp.DisplayAlerts = False '遍历源文件夹中的每个Excel表,将其转换为PDF For Each FileItem In SourceFolder.Files If Right(FileItem.Name, 4) = ".xls" Or Right(FileItem.Name, 5) = ".xlsx" Then i = i + 1 '打开Excel表 Set ExcelBook = ExcelApp.Workbooks.Open(FileItem.Path) '设置PDF保存路径 SavePath = FSO.BuildPath(Environ("USERPROFILE") & "\Desktop\PDFs", FSO.GetBaseName(FileItem.Name) & ".pdf") '将Excel表保存为PDF ExcelBook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=SavePath '关闭ExcelExcelBook.Close False '更新进度条 UserForm1.ProgressBar1.Value = i / TotalFiles * 100 End If Next '关闭Excel应用程序 ExcelApp.Quit '销毁对象 Set ExcelBook = Nothing Set ExcelApp = Nothing Set FileItem = Nothing Set SourceFolder = Nothing Set FSO = Nothing End Sub ``` 这段代码使用Microsoft Excel应用程序将源文件夹中的每个Excel表转换为PDF,并在转换过程中使用用户窗体来显示进度条。您需要创建一个名为"UserForm1"的用户窗体,并在其中添加一个名为"ProgressBar1"的进度条控件。同时,您需要将源文件夹路径和PDF保存路径替换为您自己的路径

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CDamogu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值