Mac系统VBA代码替换硬编码用户名实现通用路径的方法求助
Mac VBA获取当前用户名/用户路径解决方法
针对你遇到的硬编码用户名问题,Mac平台的VBA有两个实用的解决方案,直接替换你的硬编码路径即可:
方法1:利用系统环境变量直接获取用户主目录(推荐)
Mac的环境变量HOME直接指向当前用户的主目录(也就是/users/[你的用户名]),不用单独提取用户名,直接拼接路径更简洁:
Dim userHomePath As String Dim boxDocPath As String ' 获取当前用户主目录 userHomePath = Environ("HOME") ' 拼接Box文档路径 boxDocPath = userHomePath & "/Library/CloudStorage/Box-Box/document" ' 打开工作簿 Set book1 = Workbooks.Open(boxDocPath)
方法2:通过AppleScript获取当前用户名
如果需要单独提取用户名,可以调用AppleScript来获取,Mac VBA支持通过MacScript函数执行AppleScript代码:
Dim currentUser As String Dim boxDocPath As String ' 获取当前用户名 currentUser = MacScript("return short user name of (system info)") ' 拼接完整路径 boxDocPath = "/users/" & currentUser & "/Library/CloudStorage/Box-Box/document" ' 打开工作簿 Set book1 = Workbooks.Open(boxDocPath)
补充说明
你之前用~/无效是因为VBA的Workbooks.Open方法不会自动解析类Unix的~路径缩写,必须用完整的绝对路径,上面两种方法都能生成正确的路径,适配所有员工的设备。
内容的提问来源于stack exchange,提问作者Anna Glover
相关产品推荐
相关产品推荐

