Moh*_*med 14 macos bash vba excel-vba-mac
如何bash
在MAC OSX上使用VBA 运行文件
我尝试了以下代码
location = FolderPath(ThisWorkBook.FullName)
Run Code Online (Sandbox Code Playgroud)
它返回当前目录减去文件名.
其次是
Shell(location &"runmybatch.sh")
Run Code Online (Sandbox Code Playgroud)
我这样做是因为bash脚本与excel电子表格位于同一文件夹中.
小智 1
我没有使用FolderPath命令,它似乎对我不可用,所以我稍后会调查为什么不可用。下面是我测试过的一些示例代码,以确保可以从 OSX Excel 运行 .sh 文件。
我用来测试的 .sh 文件放置在我的桌面上,仅包含以下行:“open /Applications/Calculator.app”
在 OSX 上从 Excel 调用 .sh 的 VBA 代码如下:
Dim DesktopFolder As String
DesktopFolder = MacScript("return (path to desktop folder) as string")
Dim ScriptFile As String
ScriptFile = DesktopFolder & "test.sh"
RetVal = Shell(ScriptFile, vbNormalFocus)
Run Code Online (Sandbox Code Playgroud)
我决定检查它是否仅在某些文件夹上起作用,因此我将 .sh 文件移至 /tmp 文件夹,并且无法执行该文件,无论我如何编码路径,都只会出现“文件未找到错误”。最后意识到 OSX 上的 /tmp 文件是一个映射到 /private/tmp 的符号链接,当我使用该路径时,一切似乎又正常工作了。
Dim ScriptFile As String
ScriptFile = "Macintosh HD:private:tmp:test.sh"
RetVal = Shell(ScriptFile, vbNormalFocus)
Run Code Online (Sandbox Code Playgroud)
无论如何,希望它能有所帮助。我将继续寻找更好的方法,需要一些东西来动态地找到可靠的文件位置。