我需要有关如何在Excel中包含一个复选框的帮助,并在勾选时让Msgbox显示“Hello”。这不是我真正需要做的事情,但我可以从那里找到自己的方式。
这应该使用Powershell完成。 刚开始。
$missing = [System.Type]::missing
$excel = New-Object -Com Excel.Application
$wb = $excel.Workbooks.Add($missing)
$ws = $wb.Worksheets.Item(1)
########################################
# INSERT CHECKBOX HERE
# INSERT VBA CODE HERE
########################################
感谢。
答案 0 :(得分:0)
添加复选框非常简单:
$oleObjects = $ws.OLEObjects($missing)
$checkbox = $oleObjects.Add("Forms.CheckBox.1",$missing,0,0,$missing,$missing,$missing,22.5,21,122.25,18.75)
然而,动态添加VBA代码让我疯狂。在C#interop中,它将是这样的:
Microsoft.Vbe.Interop.VBProject Project = Workbook.VBProject;
Microsoft.Vbe.Interop.VBComponent Module = Project.VBComponents.Add(Microsoft.Vbe.Interop.vbext_ComponentType.vbext_ct_StdModule);
Microsoft.Vbe.Interop.CodeModule Code = Module.CodeModule;
Module.Name = Name;
Code.AddFromString(VBACode);
在PowerShell中,VBProject.VBComponets返回null。我对PowerShell的了解非常有限。我想知道这是不是一个安全问题。最新版本的excel对于以编程方式添加VBA代码非常严格。