簡體   English   中英

為所有用戶將 Excel Doc 導出為 PDF 的宏

[英]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,則返回空字符串。


這是另一個例子https://stackoverflow.com/a/31694603/4539709

您可以使用環境變量。 %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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM