programing

사용자와 상관없이 Excel Workbook을 바탕 화면에 저장하는 방법은 무엇입니까?

abcjava 2023. 7. 5. 20:02
반응형

사용자와 상관없이 Excel Workbook을 바탕 화면에 저장하는 방법은 무엇입니까?

Excel 워크북이 있는데, 양식 단추에서 워크북의 복사본을 사용자의 바탕 화면에 저장해야 함을 클릭합니다.

원래는 모든 것이 공유 네트워크 폴더에 있을 예정이었지만, 지금은 약 6명의 사용자가 있으므로 사용자가 버튼을 클릭하면 워크북을 개별 데스크톱에 저장해야 합니다.

개별 사용자를 지정할 필요 없이(6개의 워크북 파일을 유지 관리해야 하는) 컴퓨터 데스크톱에 저장할 수 있는 방법이 있습니까?

이것이 사용자 이름과 항상 같지 않은 데스크톱 경로를 얻는 가장 신뢰할 수 있는 방법이라고 생각합니다.

MsgBox CreateObject("WScript.Shell").specialfolders("Desktop")

당신은 그들이 각각의 컴퓨터를 가지고 있다고 언급했지만, 만약 그들이 동료 컴퓨터에 로그온해야 한다면, "C:"를 통해 파일을 저장합니다.\Users\Public\Desktop\"은 다른 사용자 이름에서 사용할 수 있도록 합니다.

Public Sub SaveToDesktop()
    ThisWorkbook.SaveAs Filename:="C:\Users\Public\Desktop\" & ThisWorkbook.Name & "_copy", _ 
    FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub

이것이 필요한지는 모르겠지만 도움이 될 수도 있습니다!

이것이 여전히 관련이 있는지 확실하지 않지만, 저는 이 방법을 사용합니다.

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

언급URL : https://stackoverflow.com/questions/17551238/how-to-save-excel-workbook-to-desktop-regardless-of-user

반응형