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

2024-06-01

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

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 行的代码?


有条件编译允许您根据您使用的操作系统编译不同的代码。看这一页 https://msdn.microsoft.com/en-us/library/office/gg264731.aspx用于条件编译。

在您的情况下,您需要将适用于 Mac 或 Windows 的特定代码附在以下内容中:

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

我自己没有Mac来测试,但根据这个网站 http://www.rondebruin.nl/mac/mac007.htm你可以使用MacScript 函数 https://msdn.microsoft.com/fr-fr/library/office/gg264812.aspx获取请求的文件夹路径,并在参数中传递正确的脚本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在适用于 Windows 和 Mac 的 VBA 中指定用户文件夹的路径 的相关文章

  • Excel VBA 自动过滤子字符串

    我的 Excel 中有多行 其中 D 列为 TDM 02 Bundle Rehoming 5 NE TDM 02 Bundle Rehoming 23 NE IP 02 Bundle Rehoming 7 NE 等 请注意 大多数情况下 N
  • 桌面上的 AVAudioSession?

    在 mac 桌面上 我试图录制系统声音 以及可选的麦克风声音 但一开始我只是录制系统声音 我正在遵循本指南 https www appcoda com ios avfoundation framework tutorial https ww
  • 重新查询时如何避免转到第一条记录?

    在 Access 2010 中制作一个表单 我试图制作一个移动到下一条记录 如果在末尾则为第一个记录 的按钮 但因为我想考虑其他用户对已发生的数据集的更新与此同时 我在转到下一条记录之前重新查询表单 我正在使用以下代码 改编自这个帖子 ht
  • 在 Mac OS X 中使用命令行终止“loginwindow”进程

    到目前为止 我已经编写了以下 unix 命令 ps Ajc grep loginwindow cut c 16 20 sed s g 这会抓取 loginwindow 进程 使用 cut 和 sed 对其进行过滤 以返回 loginwind
  • Apple doc的GCD生产者-消费者解决方案错误?

    在 Apple 并发编程指南的 从线程迁移 部分中 有 改变生产者 消费者实施 http developer apple com library ios documentation General Conceptual Concurrenc
  • 如何使用java从Excel工作表中获取特定列名(作为参数传递)的最后一个非空单元格的行索引?

    模块的摘要 获取书籍名称 工作表名称和列名称作为参数 并期望模块返回所需的行索引 public int getExcelData String WBookName String sheetName String columnName int
  • iPhone 到 Mac 开发

    我是一名 iPhone 开发人员 非常了解该框架 随着 Mac 应用商店即将推出 我想了解有关 Mac 开发的更多信息 有没有好的指南 教程 等等 帮助过渡 我环顾四周并没有发现太多 谢谢您的帮助 您基本上需要了解之间的区别UIKit an
  • 如何在 Mac v 10.7.2 上安装/使用 php

    我是对使用 PHP 感兴趣的普通大学生 谁能告诉我 101 如何使用简单明了的语言在 mac 版本 10 7 2 上安装 启用它 我将感谢任何和所有的帮助 Cheers 无需安装 PHP 或 Apache 它们已随 Mac 10 7 一起提
  • 何时为自定义视图创建 Interface Builder 插件?

    您何时建议使用插件将自定义视图集成到 Interface Builder 中 当浏览苹果的时候Interface Builder 插件编程指南 http developer apple com documentation Developer
  • excel vba范围单元格错误对象定义[重复]

    这个问题在这里已经有答案了 我一直在 Excel 中开发一个宏 该宏对一张工作表 次要 中的表格进行排序 当满足条件时 它应该将该表中的数据添加到第二张工作表 Sheet1 中的另一个表格中 但是我一直运行时出现 1004 错误 对象未定义
  • 如何正确编写 CSS 属性选择器来提取所有 id 属性?

    情况 我目前正在尝试在 VBA 中使用语法重现属性选择器 attr 来自给出的 CSS 选择器练习here https www w3schools com cssref trysel asp 选择器旨在根据给定属性的值选择元素 预期结果 在
  • 有没有办法加快此 VBA 宏的运行速度,以在大范围内执行 1000 次 Vlookup?

    Sub Questionnaire to Ventilation Questionnaire to Ventilation Macro Keyboard Shortcut Ctrl Shift M Application ScreenUpd
  • 安装后找不到pip命令

    我被一个问题困住了 我有一个 Python 脚本 我想在我的 OSX 上运行 但似乎我在很多问题上都遇到了问题 要运行该脚本 我应该安装 Python 和 Moviepy 为了安装 Moviepy 我使用了这个命令 sudo pip ins
  • 插入新的 USB 设备时会发生什么?

    我有一个带有 USB 连接的嵌入式设备 当用户将设备插入 PC Windows OSX 时 操作系统如何发现要安装哪些驱动程序 如何得到my驱动程序被选择 它们可以驻留在某个中央服务器上 由操作系统供应商运行 吗 这是针对 Windows
  • Octopress 运行 rake 预览失败

    有点连线 我尝试安装 octopress 一切都很顺利 但我就是无法使用rake preview 当我尝试查看预览时 有一些信息 服务器看起来完全没有问题 bash 3 2 rake preview Starting to watch so
  • 在 Windows 服务中使用 OleDb 从 Excel 读取数据?

    免责声明 我知道这是一种不好的做事方式 这是我们与客户的唯一选择 Problem 我们需要每隔 x 时间从 Excel 文件读取数据 数据通过第三方 Excel 插件不断变化 应用程序的环境是 Windows XP SP1 和 Net 2
  • VBA 6:正则表达式无法识别复杂的字符串

    我有这个字符串 1X214X942 0SX 其中每个 X 代表一个 不间断空格 准确地说是空白 ASCII 代码为 160 S 代表一个空格字符 我试图用这个正则表达式来识别它 d 1 3 s d 3 s d 3 d 1 3 d 1 3 d
  • 切换发件人收件箱

    我目前使用的代码可以生成带有某些字段 例如 收件人 抄送 密件抄送 的电子邮件 但我不确定如何自动切换电子邮件的 发件人 部分 Ie my email is here but I want to automatically switch t
  • VBA:或操作员不执行[重复]

    这个问题在这里已经有答案了 我试图在 VBA 中使用 OR 运算符 但编译时出现错误 我已经在线检查了语法 并且我确信我使用正确 例如 如果我做这样的事情 If CStr Worksheets MINUTES Cells x 2 A1 2
  • Excel幂查询——聚合连续“传递”重叠时间间隔

    我正在尝试使用 Excel 强力查询将下面给出的表 1 聚合到表 2 目标是将同一组的连续时间间隔合并到一行中 对于像事件 5 和事件 6 这样的直接重叠 这非常容易 但这种方法仅合并事件 1 和 2 以及 2 和 3 从而产生两个条目 参

随机推荐