excel - 在适用于 Windows 和 Mac 的 VBA 中指定用户文件夹的路径

标签 excel vba macos

我正在编写一个使用 VBA 从 Excel 生成文件的工具。生成的文件将写入用户的 Documents 文件夹中的文件夹(如果存在)。

例如C:\Users\<username>\Documents\Some Folder\

如果最后一个文件夹不存在,则 VBA 将创建它。我使用以下行来确保该文件夹的位置适用于组织中分布的不同 Windows 用户:

If Len(Dir(Environ("USERPROFILE") & "\Documents\Some Folder", vbDirectory)) = 0 Then
    MkDir Environ("USERPROFILE") & "\Documents\Some Folder"
End If
Open Environ("USERPROFILE") & "\Documents\Some Folder\" & "file.php" For Output As #1
Print #1, output
Close

我现在的问题是我还必须满足 Mac OSX 用户的需求。目前我无法使用 Mac 进行测试,但我假设上述方法不起作用。

我可以使用什么来指向用户文档中的子文件夹,以及如何包含有条件地使用 Windows 行或 Mac 行的代码?

最佳答案

有条件编译,允许您根据您使用的操作系统编译不同的代码。请参阅this page用于条件编译。

在您的情况下,您需要将适用于 Mac 或 Windows 的特定代码括起来:

#if Mac then
'here Mac only code
#else
'here Windows only code
#end if

我自己没有Mac来测试,但是根据this site您可以使用 MacScript function获取请求的文件夹路径,并在参数中传递正确的脚本。

关于excel - 在适用于 Windows 和 Mac 的 VBA 中指定用户文件夹的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40131131/

相关文章:

excel - VBA,EXCEL,字: Formatting of Horizontal line from Excel in Word Header

vba - 如何选择并删除每第三列

excel vba选择列

macos - 在 Mac 上的排序文件中的模式之前插入列分隔符

macos - 在 Mac 上安装 ffmpeg 失败

mysql - 在 MacOS 系统启动时启动 Docker 容器

excel - 命名范围数组不起作用或不可能?

vba - Excel VBA 十进制数字在文本输出中转换为整数

Excel:计算不连续范围内的相同数值

Excel VBA 迭代文件 - 陷入循环