我用EXCEL做了一个模板,我想通过程序动态的向模板里添加CHECKBOX组件。找了半天,没有找到方法。有知道的大哥请指点一下小弟

解决方案 »

  1.   

    感觉比较难,Excel宏里面都是些VBA,用C#来实现估计要摸索半天..
      

  2.   

    //项目->添加引用->COM->Microsoft Excel XX.X Object Library
    //如果出现“不信任到Visual Basic Project 的程序连接”提示
    //解决办法:开Excel->工具->宏->安全性->可靠发行商
    //选中"信任对于Visiual Basic 项目的访问",确定即可。
    CodeModule vCodeModule = vExcel.ActiveWorkbook.VBProject.VBComponents.Add(
        vbext_ComponentType.vbext_ct_StdModule).CodeModule;
    vCodeModule.AddFromString("...你录制的宏....");
    vExcel.Run("MyMacro()", null, null, null, null, null, null, null, null, null, null,
        null, null, null, null, null, null, null, null, null, null,
        null, null, null, null, null, null, null, null, null, null);
      

  3.   

    ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
            DisplayAsIcon:=False, Left:=5.25, Top:=12.75, Width:=108, Height:= _
            19.5).Select
        ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
            DisplayAsIcon:=False, Left:=9.75, Top:=57.75, Width:=108, Height:= _
            19.5).Select
        Selection.ShapeRange.IncrementLeft -6.75
        Selection.ShapeRange.IncrementTop -12.75
        Selection.ShapeRange.IncrementLeft 2.25
        ActiveSheet.Shapes("CheckBox1").Select
        ActiveSheet.Shapes("CheckBox2").Select
      

  4.   

    Excel.Application vApplication = new Excel.Application();
    Excel.Application vExcel = new Excel.Application();
    vExcel.Workbooks.Add(true);
    vExcel.Visible = true;
    Worksheet vWorksheet = vExcel.ActiveSheet as Worksheet;
    Excel.Shape vShape = vWorksheet.Shapes.AddOLEObject(
      "Forms.CheckBox.1", null, null, false, null, null, null, 5.25, 12.75, 108, 19.5);
    vShape = vWorksheet.Shapes.AddOLEObject(
      "Forms.CheckBox.1", null, null, false, null, null, null, 9.75, 57.75, 108, 19.5);
      

  5.   


    Sub Macro1()
    '
    ' Macro1 Macro
    ' Macro recorded 2007-8-13 by GPRO
    ''
        Range("C48:G54").Select
        Charts.Add
        ActiveChart.ChartType = xlLine
        ActiveChart.SetSourceData Source:=Sheets("Reprot").Range("C48:G54"), PlotBy _
            :=xlRows
        ActiveChart.Location Where:=xlLocationAsObject, Name:="Reprot"
        With ActiveChart
            .HasTitle = False
            .Axes(xlCategory, xlPrimary).HasTitle = False
            .Axes(xlValue, xlPrimary).HasTitle = False
        End With
        ActiveSheet.Shapes("Chart 1").IncrementLeft 28.5
        ActiveSheet.Shapes("Chart 1").IncrementTop 161.25
        Windows("6-3.xls").SmallScroll Down:=15
        ActiveSheet.Shapes("Chart 1").IncrementLeft -20.25
        ActiveSheet.Shapes("Chart 1").IncrementTop 155.25
    End Sub
    这是偶的宏,能用C# 调用吗? 主要是生成图 [email protected]