我正在编写一个使用VBA从Excel生成文件的工具。生成的文件将写入用户文档文件夹中的文件夹(如果存在)。
e.g。 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系列的代码?
答案 0 :(得分:8)
有条件编译允许您根据您使用的操作系统编译不同的代码。有关条件编译,请参阅this page。
在您的情况下,您需要附上Mac的Windows特定代码:
#if Mac then
'here Mac only code
#else
'here Windows only code
#end if
我自己没有Mac测试,但根据this site,您可以使用MacScript function获取请求的文件夹路径,并在参数中传递正确的脚本。
答案 1 :(得分:6)
您有两种选择:
<强> 1。使用Application.PathSeparator
... See the MSDN here。
代码:
Dim PS as String
PS = Application.PathSeparator
If Len(Dir(Environ("USERPROFILE") & PS & "Documents" & PS & "Some Folder", vbDirectory)) = 0 Then
MkDir Environ("USERPROFILE") & PS & "Documents" & PS & "Some Folder"
End If
Open Environ("USERPROFILE") & PS & "Documents" & PS & "Some Folder" & PS & "file.php" For Output As #1
Print #1, output
Close
<强> 2。创建IF THEN
以检查OS
代码:
Sub SaveDoc()
Dim wksSheet As Worksheet
If InStr(1, Application.OperatingSystem, "Windows") > 0 Then
'Code with Windows Path Separator
Exit Sub
Else
'Code with Mac Path Separator
Exit Sub
End If
End Sub
答案 2 :(得分:0)
这对我有用。我在PC上书写,但有一些Mac用户。
$('.btn').click(function(){
$(this).toggleClass("click");
$('.sidebar').toggleClass("show");
});
$('.feat-btn').click(function(){
$('nav ul .feat-show').toggleClass("show");
$('nav ul .first').toggleClass("rotate");
});
$('.serv-btn').click(function(){
$('nav ul .serv-show').toggleClass("show1");
$('nav ul .second').toggleClass("rotate");
});
$('nav ul li').click(function(){
$(this).addClass("active").siblings().removeClass("active");
});