出于某种原因,我可以让消息框告诉我用户名是什么,但它在save as path中的工作方式不同。我收到“无法找到路径”错误。
不确定如何解决这个问题。我也看过参考文献,看起来它们是正确的。
如果我更改路径以包含每台计算机的实际用户名,则宏可以正常工作。但我需要这个是任何计算机/用户的全局宏。任何帮助将不胜感激。
这就是我所拥有的:
Sub SAVEAS_2010()
'
' SAVEAS_2010 Macro
MsgBox Environ("username")
Dim UserName As String
UserName = Environ("username")
ChDir "C:\Users\" & UserName & "\Dropbox\Open Machine Schedule"
ActiveWorkbook.SaveAs FileName:= _
"C:\Users\" & UserName & "\Dropbox\Open Machine Schedule\Open Machine Schedule - Current_2.xlsx" _
, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
End Sub
答案 0 :(得分:5)
似乎是一个老问题。但是对于那些偶然发现这篇文章的人来说,添加 $ 对我有用 - 的&安培; Environ $("用户名")&
答案 1 :(得分:5)
或者您可以将VBA.
放在它前面。这为我解决了这个问题。
即Environ("Username")
变为VBA.Environ("Username")
。
答案 2 :(得分:2)
Environ("UserProfile") &
这对2007-2013的Excel版本有用。
答案 3 :(得分:0)
只是使用VBA 7.1发现了相同的问题
解决方法是使用
path = Environ$("Userprofile") & "\Documents\temp_excel_files\"
Environ$("Userprofile")
将为您提供“ c:\ users \ Johnsmith”之类的内容。
干杯! 安德鲁