我正在使用 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,如第二张图片所示。最佳答案
测试和工作:
$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/