excel - Powershell 引用 vba 项目 > microsoft excel 对象 > 本工作簿

标签 excel vba powershell

我正在使用 PowerShell 创建打开的 .xlsx,然后将其保存为启用宏的工作簿 (.xlsm),并将 vb 脚本添加到 vba 项目 > 模块

$AutofitModule = $workbook.VBProject.VBComponents.Add(1)
$Autofit = @"
Sub workbook_open()
Worksheets("Sheet1").UsedRange.EntireColumn.autofit
End Sub
"@

$AutoFitModule.codemodule.AddFromString($Autofit)
我不想将其保存到 vba 项目 > 模块,如第一张图片所示,我想将其保存到 vbaprojects > Microsoft Excel 对象 > Thisworkbook,如第二张图片所示。
vba showing module
VBA Editor showing thisworkbook

最佳答案

测试和工作:

$excel = New-Object -ComObject Excel.Application
$excel.Visible = $true
$FilePath = 'C:\Temp\TestBook.xlsx'
$opendoc = $excel.Workbooks.Open($FilePath)
$excel.DisplayAlerts = $false
try{
    $opendoc.VBProject.VBComponents.Item("ThisWorkbook").CodeModule.InsertLines(1, 'Sub workbook_open()')
    $opendoc.VBProject.VBComponents.Item("ThisWorkbook").CodeModule.InsertLines(2, 'Worksheets("Sheet1").UsedRange.EntireColumn.autofit')
    $opendoc.VBProject.VBComponents.Item("ThisWorkbook").CodeModule.InsertLines(3, 'End Sub')
    $opendoc.SaveAs("C:\Temp\TestBook.xlsm", 52, [Type]::Missing, [Type]::Missing, $false, $false, 1, 2)
}
catch{
    $opendoc.close()
    $excel.quit()
}
$excel.quit()

关于excel - Powershell 引用 vba 项目 > microsoft excel 对象 > 本工作簿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72397577/

相关文章:

vba - Access VBA 将字段名称作为记录

powershell - 到本地主机的 New-PSSession 失败

excel - 将所有对象移回excel VBA用户表单中的原始位置

excel - 从字符串VBA的开头到结尾移动两个字符

vba - VBA 中的 WorksheetFunction.IsNumber() 和 IsNumeric() 有什么区别?

excel - 使用 VBA 宏在 Excel 中的员工病假表

excel - 当宏调用 Excel 打开时,Word 卡住

vba - 如何知道Word中右键下的单词

powershell - 有没有办法加快 ps-objects 中的动态成员查找

powershell - 在 VSTS 托管构建代理上的 Powershell 中运行自定义 npm 命令