相关疑难解决方法(0)

如何在powershell中的excel.Worksheet中添加VBA代码?

我需要Private Sub **Worksheet_BeforeDoubleClick** (ByVal Target As Range, Cancel As Boolean)在我的表格中包含一个(1).

我能够正确地打开和写入单元格,但我不知道如何将VBA代码放在工作表中(而不是在VBA模块中).

$excel = New-Object -ComObject Excel.Application
$workbook = $excel.Workbooks.Add()
$worksheet = $workbook.WorkSheets.item(1)
$worksheet.range("c1","g6").value = "str"
...
$workbook.SaveAs($xlFlie, 50)
$Excel.Application.Quit()
Run Code Online (Sandbox Code Playgroud)

我试过这个:

$xlmodule = $workbook.VBProject.VBComponents.Add()
$xlmodule.CodeModule.AddFromString($code)
Run Code Online (Sandbox Code Playgroud)

但我得到了这个错误:

Can not call a method in an expression Null.
Au caractère .\Build-ADGrpsMembers2Excel.ps1:273 : 5
+     $xlmodule = $workbook.VBProject.VBComponents.Add(1)
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidOperation : (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
Run Code Online (Sandbox Code Playgroud)

excel powershell vba excel-vba

4
推荐指数
1
解决办法
3802
查看次数

JACOB不会正确释放对象

我有一个eclipse插件,它使用Jacob连接到COM组件.但在我完全关闭插件后,.exe文件在Windows进程中保持不变.

ComThread.InitMTA(true)用于初始化并确保SafeRelease()在关闭应用程序之前为我创建的每个COM对象调用它ComThread.Release(),并在最后调用.

我是否会遗漏一些东西?

java com jacob

2
推荐指数
3
解决办法
5899
查看次数

标签 统计

com ×1

excel ×1

excel-vba ×1

jacob ×1

java ×1

powershell ×1

vba ×1