【发布时间】:2021-03-25 05:53:18
【问题描述】:
由于某种原因,我可以让消息框告诉我用户名是什么,但它在另存为路径中的工作方式不同。我收到“找不到路径”错误。
不知道如何解决这个问题。我还查看了参考资料,它们似乎是正确的。
如果我更改路径以包含每台计算机的实际用户名,则宏可以正常工作。但我需要它成为任何计算机/用户的全局宏。任何帮助将不胜感激。
这是我所拥有的:
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
【问题讨论】:
-
我也尝试将 Environ("username") 放入路径中,但没有成功。我仍然遇到同样的错误 - 找不到路径。
-
Debug.Print Dir("C:\Users\" & UserName & "\Dropbox\Open Machine Schedule", vbDirectory)给你什么? -
抱歉,我的变量之一不匹配。我再次运行 Debug.Print,它没有打印任何东西。我只是得到相同的运行时 76 错误找不到路径。然后,当我选择调试时,它会突出显示 ChDir 行。和以前一样。
-
一切都指向那个不存在的目录...
-
但它确实存在。就像我说的,当我将“ & UserName & ”更改为登录者的实际用户名时,例如 ~\Users\John Smith\Dropbox\Open Machine Schedule” 它工作正常。这是我的全部困惑,这是一个录制的宏我唯一改变的是 Environ("username") 部分。
标签: vba excel-2010