我有一个Excel工作簿,在表单按钮上单击我需要将工作簿的副本保存到用户的桌面。VBA:如何将Excel工作簿保存到桌面而不管用户?
本来一切都将是一个共享的网络文件夹,但现在我有大约6个不同的用户,当他们按一下按钮,我需要将工作簿保存到他们的个人桌面。
是他们的一种方式(编码明智)保存到本机桌面,而无需指定具体的用户(这需要我保持6个不同的工作簿文件)?
我有一个Excel工作簿,在表单按钮上单击我需要将工作簿的副本保存到用户的桌面。VBA:如何将Excel工作簿保存到桌面而不管用户?
本来一切都将是一个共享的网络文件夹,但现在我有大约6个不同的用户,当他们按一下按钮,我需要将工作簿保存到他们的个人桌面。
是他们的一种方式(编码明智)保存到本机桌面,而无需指定具体的用户(这需要我保持6个不同的工作簿文件)?
我认为这是最可靠的方式来获得,这并不总是一样的用户名桌面路径。
MsgBox CreateObject("WScript.Shell").specialfolders("Desktop")
你提到了,他们每个人都有自己的机器,但如果他们需要登录到一个同事的机器,然后使用该文件,将其保存到“C:\用户\公用\桌面\“将使其可用于不同的用户名。
Public Sub SaveToDesktop()
ThisWorkbook.SaveAs Filename:="C:\Users\Public\Desktop\" & ThisWorkbook.Name & "_copy", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub
我不确定这是否是需求,但可能有帮助!
谢谢你的笔记,当然值得考虑的在正常情况下。这些用户是督察员,大约6人,每个负责本州自己的地区。他们登录另一台检查机的可能性极不可能永远不会。 –
不知道这仍然是相关的,但我用这样的方式
Public bEnableEvents As Boolean
Public bclickok As Boolean
Public booRestoreErrorChecking As Boolean 'put this at the top of the module
Private Declare Function apiGetComputerName Lib "kernel32" Alias _
"GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _
"GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Function GetUserID() As String
' Returns the network login name
On Error Resume Next
Dim lngLen As Long, lngX As Long
Dim strUserName As String
strUserName = String$(254, 0)
lngLen = 255
lngX = apiGetUserName(strUserName, lngLen)
If lngX <> 0 Then
GetUserID = Left$(strUserName, lngLen - 1)
Else
GetUserID = ""
End If
Exit Function
End Function
这下一位我将文件保存为PDF格式,但可以改变,以适应
Public Sub SaveToDesktop()
Dim LoginName As String
LoginName = UCase(GetUserID)
ChDir "C:\Users\" & LoginName & "\Desktop\"
Debug.Print LoginName
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\" & LoginName & "\Desktop\MyFileName.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End Sub
这不是一个防弹的方法 - 你的函数GetUserID()返回用户登录名(但是在某些情况下,用户配置文件文件夹可能不会被调用相同的东西) – CrazyTim
还没有想过这个问题! +1 – 2013-07-09 15:01:51
@mehow我只是想过这个问题在过去像我不是;) – SWa
是否有需任何特殊的参考文献,文件,使需要在我的用户的机器上运行的代码? –