【问题标题】:vba excel 2010 Environ("username") not working in saveas filepathvba excel 2010 Environ(“用户名”)在另存为文件路径中不起作用
【发布时间】: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


【解决方案1】:

似乎是一个老问题。但是对于任何偶然发现这篇文章的人来说,添加 $ 对我有用 - & Environ$("用户名") &

【讨论】:

    【解决方案2】:

    或者你可以把VBA.放在它前面。这为我修复了它。 即Environ("Username") 变为VBA.Environ("Username")

    【讨论】:

      【解决方案3】:
      Environ("UserProfile") &
      

      这在 2007-2013 Excel 版本中对我有用。

      【讨论】:

        【解决方案4】:

        刚刚使用 VBA 7.1 发现了同样的问题

        解决方案是使用

            path = Environ$("Userprofile") & "\Documents\temp_excel_files\"
        

            Environ$("Userprofile") 
        

        会给你类似“c:\users\Johnsmith”的东西放到你的路径中。

        干杯! 安德鲁

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-03-26
          • 2015-05-06
          • 1970-01-01
          • 2016-03-17
          • 2014-12-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多