Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在不使用excel文件的情况下将PERL中的VBA文件直接转换为vbaProject.bin?_Excel_Vba_Perl_Xlsm_Vbe - Fatal编程技术网

如何在不使用excel文件的情况下将PERL中的VBA文件直接转换为vbaProject.bin?

如何在不使用excel文件的情况下将PERL中的VBA文件直接转换为vbaProject.bin?,excel,vba,perl,xlsm,vbe,Excel,Vba,Perl,Xlsm,Vbe,或者用Perl将VB文件编译成.exe 我正在使用解压命令从示例XLSM excel文件中提取VBA bin 解压-j xl/sample.xlsm xl/vbaProject.bin 我在git目录的sample.vb文件中有相同的宏代码。我使用Perl脚本生成XLSM文件,并使用 $workbook->add_vba_项目('/home/pathtosharedtemplatefolder/vbaProject.bin') 我计划更新“pathtosharedtemplatefolder”目

或者用Perl将VB文件编译成.exe

我正在使用解压命令从示例XLSM excel文件中提取VBA bin

解压-j xl/sample.xlsm xl/vbaProject.bin

我在git目录的sample.vb文件中有相同的宏代码。我使用Perl脚本生成XLSM文件,并使用

$workbook->add_vba_项目('/home/pathtosharedtemplatefolder/vbaProject.bin')

我计划更新“pathtosharedtemplatefolder”目录中的sample.vb文件。因此,我可以在本地编译sample.vba文件以生成用于图纸格式化的bin文件,而不是使用project.bin文件本身。通过这种方式,我还可以跟踪sample.vb文件,并使用git diff进行更新,以便进行调试


什么是Linux命令/PERL代码来将VBA编译到project bin?

“什么是Linux命令/PERL代码”…在Windows上不能这样做,更不用说在Linux上了。VBA没有命令行编译器,它的宿主本质是固有的。.bin内容是由VBA主机应用程序(此处为Excel)的
IStorage
实现编写的,该格式没有文档记录,因为它是特定于主机的专有格式。然而,考虑到最坏情况的利用可能是一个特性,它允许任意代码绕过主机存储机制,并将宏指令文档拼接在一起——可以解释路障;如果您使用的是Office 2000 Developer Edition(x86),那么您可以从VBA项目中编译一个(32位).dll,但这种可能性已经很长时间没有了。但这是一个X-Y问题:您实际上不需要手动编译VB宿主文档-您需要的是在源代码控制下获得VBA代码。从
本工作簿
和工作表模块(即进入标准和类模块)中获取尽可能多的代码,然后使用RuberDuck的“导出项目”和“从文件夹同步项目”功能轻松导入/导出到文件系统,并从文件系统返回到VBA项目。注意,文档模块不能被导入回去,这就是为什么代码需要最小化的原因。“什么是linux命令/perl代码”…你不能在Windows上这样做,更不用说linux了。VBA没有命令行编译器,它的宿主本质是固有的。.bin内容是由VBA主机应用程序(此处为Excel)的
IStorage
实现编写的,该格式没有文档记录,因为它是特定于主机的专有格式。然而,考虑到最坏情况的利用可能是一个特性,它允许任意代码绕过主机存储机制,并将宏指令文档拼接在一起——可以解释路障;如果您使用的是Office 2000 Developer Edition(x86),那么您可以从VBA项目中编译一个(32位).dll,但这种可能性已经很长时间没有了。但这是一个X-Y问题:您实际上不需要手动编译VB宿主文档-您需要的是在源代码控制下获得VBA代码。从
本工作簿
和工作表模块(即进入标准和类模块)中获取尽可能多的代码,然后使用RuberDuck的“导出项目”和“从文件夹同步项目”功能轻松导入/导出到文件系统,并从文件系统返回到VBA项目。注意,文档模块不能被导入回去,这就是为什么代码需要最小化的原因。