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