我正在编写一个使用 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/