导出PDF时VBA未指定用户名
我有一个工作代码下面打开和保存一个PDF文件为1个特定的用户到文件文件夹。 我不知道的问题是如何用任何其他用户替换像SmithJoe这样的特定用户名。代码应该被更多的用户使用。现在,当TaylorRog尝试使用代码时,它就不起作用了。它只为史密斯乔工作。 是否有可能将特定用户“SmithJoe”替换为所有用户导出PDF时VBA未指定用户名,vba,authentication,pdf,save,Vba,Authentication,Pdf,Save,我有一个工作代码下面打开和保存一个PDF文件为1个特定的用户到文件文件夹。 我不知道的问题是如何用任何其他用户替换像SmithJoe这样的特定用户名。代码应该被更多的用户使用。现在,当TaylorRog尝试使用代码时,它就不起作用了。它只为史密斯乔工作。 是否有可能将特定用户“SmithJoe”替换为所有用户 Sheets(“ABC”).Range(“G8:j18”).ExportAsFixedFormat类型:=xlTypePDF,文件名:=\u“C:\Users\SmithJoe\Docum
Sheets(“ABC”).Range(“G8:j18”).ExportAsFixedFormat类型:=xlTypePDF,文件名:=\u“C:\Users\SmithJoe\Documents\fileA.pdf”,质量:=\uxlqualityStandard,IncludeDocProperties:=True,IgnorePrintAreas:=False,\uOpenAfterPublish:=True
提前感谢要获取Windows环境变量的内容,请使用函数
Environ
要获取用户名,请使用
Environ(“用户名”)
但请注意,在某些情况下,文件夹的名称与用户的名称不相等,或者文件夹的位置与C:\Users
不同。最好使用Environ(“USERPROFILE”)
——在您的情况下,应该返回C:\Users\SmithJoe
但这当然不是全部。documents文件夹可以有不同的名称,也可以位于不同的位置。要保存,您需要查询文件夹。有几种方法可以做到这一点,我发现以下方法最简单:
Function GetSystemFolder(folderID) As String
On Error Resume Next
Dim f
Set f = CreateObject("Shell.Application").namespace(folderID)
On Error GoTo 0
If Not f Is Nothing Then GetSystemFolder2 = f.Self.path
End Function
参数folderID
告诉函数需要哪个文件夹,文档文件夹的值为5。可以找到所有ID的列表
你的代码可以是这样的
Const ssfPERSONAL = &H5
...
Dim pdfFilename as String
pdfFilename = GetSystemFolder(ssfPERSONAL) & "\fileA.pdf"
Sheets("ABC").Range("G8:j18").ExportAsFixedFormat Type:=xlTypePDF,
Filename:= pdfFilename , Quality:= xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True
非常感谢
我可以再问一个问题吗?要使代码正常工作,我需要:
谢谢。
Environ(“USERPROFILE”)
。您不应该发布其他问题作为答案。因此,它不是一个论坛,也没有线程。你问了一个问题(你问了),这个问题得到了回答(希望如此)。好的答案被投赞成票,坏的答案被投反对票,最合适的答案应该被你接受。如果你有一个新问题(即使是后续问题),提出一个新问题。