如何在VBA代码中通过环境变量获取用户名并拼接桌面路径?
解决VBA中Environ用户名拼接桌面路径的问题
嘿,你的问题出在路径字符串里直接写了变量名,VBA会把它当成普通文本,而不是去读取变量UseName的实际值!
你看,原来的路径"C:\Users\UseName\Desktop\RSExcel.xlsx"里的UseName是字符串的一部分,VBA会试图访问名为UseName的用户文件夹,而不是你通过Environ("UserName")获取的当前用户名对应的文件夹。
正确的解决方案:
把变量从字符串中抽出来,用&符号拼接固定字符串和变量值,修改后的完整代码如下:
Dim UseName As String UseName = Environ("UserName") DoCmd.TransferSpreadsheet _ acExport, _ acSpreadsheetTypeExcel12Xml, _ "RevbyYrbyMo", _ "C:\Users\" & UseName & "\Desktop\RSExcel.xlsx", _ True
更稳妥的进阶写法:
有些用户可能修改了系统默认的桌面路径,直接硬编码C:\Users\可能会出问题。你可以用USERPROFILE环境变量直接获取用户根目录,再拼接桌面路径,兼容性更好:
Dim desktopPath As String desktopPath = Environ("USERPROFILE") & "\Desktop\RSExcel.xlsx" DoCmd.TransferSpreadsheet _ acExport, _ acSpreadsheetTypeExcel12Xml, _ "RevbyYrbyMo", _ desktopPath, _ True
这样不管用户的桌面路径有没有改,都能准确找到目标位置啦!
内容的提问来源于stack exchange,提问作者jpl458
相关产品推荐
相关产品推荐

