[英]Macro to export Excel Doc as PDF for all Users
我需要創建一個宏,將一個 excel 文檔作為 PDF 文件保存到任何用戶的桌面(即多人將使用此文檔/宏)。
這是我到目前為止的 VBA 代碼:
Sub CreatePDF()
'
' CreatePDF Macro
'
'
ChDir "C:\Users\Public\Desktop"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\Public\Desktop\QuickView Update Dec_2017.pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True
End Sub
我認為問題在於它保存到的目錄(在此代碼在文件路徑中顯示“公共”的情況下,我已經從最初填充的用戶名中更改了它)。
有誰知道指定通用路徑以將此文檔作為 PDF 保存到任何用戶桌面的方法嗎?
使用.specialfolders("Desktop")
保存到桌面。 設置為字符串變量並添加路徑分隔符
例子
Option Explicit
Sub CreatePDF()
Dim FilePath As String
FilePath = CreateObject("WScript.Shell").specialfolders("Desktop")
Debug.Print FilePath
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
FileName:=FilePath & "\" & "QuickView Update Dec_2017.pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
End Sub
- 所有用戶桌面
- 所有用戶開始菜單
- 所有用戶程序
- 所有用戶啟動
- 桌面
- 收藏夾
- 字體
- 我的文檔
- 網罩
- 打印頭罩
- 程式
- 最近
- 發送到
- 開始菜單
- 啟動
- 模板
如果請求的文件夾 (strFolderName) 不可用,則 SpecialFolders 屬性將返回一個空字符串。 例如,Windows 95 沒有 AllUsersDesktop 文件夾,如果 strFolderName 是 AllUsersDesktop,則返回空字符串。
您可以使用環境變量。 %USERPROFILE%\\Desktop
在這種情況下應該可以工作。
這是環境變量的列表。 https://en.wikipedia.org/wiki/Environment_variable#Default_Values
使用 VBA 訪問環境變量:VBA 的環境函數代碼示例
在 VBA 中,您可以將其轉換為Environ("USERPROFILE") & "\\Desktop"
這是未經測試的,因為我沒有使用 Windows。
我沒有測試過這個,但基於你嘗試的內容:
Dim url As String
url = Application.DefaultFilePath & "\" & ActiveWorkbook.Name & ".xls"
在代碼的導出部分中,將 filename:= blah blah 替換為 Filename:=url
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.