使用Macintosh上的多个用户,通过VBA将Excel工作表自动保存为PDF到Dropbox

使用Macintosh上的多个用户,通过VBA将Excel工作表自动保存为PDF到Dropbox,excel,vba,dropbox,Excel,Vba,Dropbox,这是我的第一篇帖子,请让我知道,如果我输入了任何不正确的内容或方法,以改善我的问题 我有一个时间表电子表格,我想保存到一个公司的dropbox文件夹一旦填写和关闭。我可以让它工作,只使用一个用户,但我想能够保存它,无论用户。我在链接的帖子中看到了一个类似的问题 然而,这并不能解决我的问题,因为我在mac电脑上,我不知道如何定义用户名。我曾想过上传时间表的人以用户身份输入他们的姓名,但是他们没有各自的计算机,将共享 我在代码中使用Sheebs作为用户名 以下是我到目前为止的代码 Priva

这是我的第一篇帖子,请让我知道,如果我输入了任何不正确的内容或方法,以改善我的问题

我有一个时间表电子表格,我想保存到一个公司的dropbox文件夹一旦填写和关闭。我可以让它工作,只使用一个用户,但我想能够保存它,无论用户。我在链接的帖子中看到了一个类似的问题 然而,这并不能解决我的问题,因为我在mac电脑上,我不知道如何定义用户名。我曾想过上传时间表的人以用户身份输入他们的姓名,但是他们没有各自的计算机,将共享

我在代码中使用Sheebs作为用户名

以下是我到目前为止的代码

    Private Sub Workbook_BeforeClose(Cancel As Boolean)

MSG1 = MsgBox("Upload Timesheet?", vbOKCancel, "Save Timesheet and Update Payroll Matrix?")
If MSG1 = Cancel Then GoTo lastline Else: GoTo Saveas


Saveas:


Dim fName As String
With ActiveSheet
    fName = .Range("D8").Value & "-" & .Range("D7").Value
    .ExportAsFixedFormat Type:=xlTypePDF, Filename:="Macintosh HD:Users:Sheebs:Dropbox:Time        Sheet:" & .Range("B8").Value & ":" & .Range("C8").Value & ":" & fName, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End With

lastline:
ThisWorkbook.Saved = True

End Sub
从这里开始:

您可以使用上面链接中描述的函数获取用户名(未测试):

职能:

Function GetUserNameMac() As String
    Dim sMyScript As String

    sMyScript = "set userName to short user name of (system info)" & vbNewLine & "return userName"

    GetUserNameMac = MacScript(sMyScript)
End Function

我不得不稍微改变你的回答。出于某种原因,它不喜欢将“uName”作为文件名的一部分,因此我将该值放入A105并从中提取
Function GetUserNameMac() As String
    Dim sMyScript As String

    sMyScript = "set userName to short user name of (system info)" & vbNewLine & "return userName"

    GetUserNameMac = MacScript(sMyScript)
End Function