如何在Excel Developer Visual BASIC中播放wav文件并使用相对路径
现有写法的问题
VBA 中的相对路径默认基于「当前工作目录」定位文件,而 Excel 默认的当前工作目录为用户的「文档」文件夹(默认路径C:\Users\用户名\Documents),并非你当前打开的 Excel 文件所在的文件夹,因此直接写文件名"AWNP.wav"会因为找不到对应文件报错。
正确的相对路径配置方案
优先选择和Excel文件路径绑定的方案,不需要手动修改路径,复制整个文件夹到任意设备都可以正常运行:
- 确保你的 Excel 文件(后缀为.xlsm等支持宏的格式)已经保存到本地,且
AWNP.wav和该 Excel 文件放在同一个文件夹下 - 将播放代码修改为拼接
ThisWorkbook.Path(该变量会自动获取当前 Excel 文件所在的文件夹绝对路径):
PlayWavFile ThisWorkbook.Path & "\AWNP.wav", False
如果需要兼容纯相对路径写法,可以先主动切换当前工作目录到 Excel 所在文件夹,再调用播放方法:
' 先切换盘符和工作目录 ChDrive ThisWorkbook.Path ChDir ThisWorkbook.Path ' 再调用相对路径写法即可正常运行 PlayWavFile "AWNP.wav", False
注意事项
- 如果 Excel 文件是新建未保存的状态,
ThisWorkbook.Path会返回空值,需要先保存文件再运行代码 - 如果路径存在空格、中文等特殊字符,部分
PlayWavFile的封装实现需要给路径外层包裹双引号,可修改为:
PlayWavFile Chr(34) & ThisWorkbook.Path & "\AWNP.wav" & Chr(34), False
内容的提问来源于stack exchange,提问作者CarolB
相关产品推荐
相关产品推荐

