我有一個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
是否有需任何特殊的參考文獻,文件,使需要在我的用戶的機器上運行的代碼? –