如何在 Perl 中将路径从 VBA 传递到 $ARGV [0]

问题描述

我想通过使用命令行参数 argv[0] 来记住我的 Excel 文件的路径, 为了在 Perl 之后使用它,请问如何在 VBA 中执行此操作? 我有这个提议,但它不起作用!

#code VBA :
Sub Import_Dico_Csv()
Dim path As String
path = Application.ActiveWorkbook.Path
    my.application.commandlineargs.item(0) = path     'argv[0]
End Sub

解决方法

不确定您要做什么,但您可以使用 VBA 创建一个环境变量,然后 perl 脚本可以使用该变量。

Option Explicit
Sub Env_MyXLSPath()
    
    Dim cmd As String
    cmd = "SETX MYXLSPATH """ & ThisWorkbook.FullName & """"
    'Debug.Print cmd
    Shell cmd

End Sub
#!perl
use strict;
print $ENV{'MYXLSPATH'}."\n";