C#.NET:将滚动条添加到Excel工作表

时间:2013-03-12 06:51:27

标签: c# excel-interop

我需要在工作表中添加一个滚动条,并使用Microsoft.Office.Interop.Excel库和C#.NET将单元格链接到它。

对应的VBA代码如下:

    ActiveSheet.ScrollBars.Add(545.25, 172.5, 398.25, 24.75).Select
With Selection
    .Value = 0
    .Min = 0
    .Max = 100
    .SmallChange = 1
    .LargeChange = 10
    .LinkedCell = "$A$1"
    .Display3DShading = True
End With

我尝试了下面的代码,它添加了Scrollbar但没有按预期工作,也无法将单元格链接到它。

oSheet.Shapes.AddOLEObject("Forms.ScrollBar.1", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, 545.25, 172.5, 398.25, 24.75);

我的C#.NET代码将滚动条添加为Excel的对象,我需要它作为控件。它似乎有所不同。

使用我的C#.NET代码的实际结果如下图所示

Actual Result using my C# code

但预期结果如下图所示:

Expected Result

1 个答案:

答案 0 :(得分:0)

我找到了解决方案Here。 是的,之前我正在添加ActiveX对象代替Control。以下代码工作正常。

using Excel = Microsoft.Office.Interop.Excel;

                   :
                   :

Excel.ControlFormat Scrollbar  = oSheet.Shapes.AddFormControl(Excel.XlFormControl.xlScrollBar, 545, 172, 398, 24).ControlFormat;

Scrollbar.Value = 0;
Scrollbar.Min = 0;
Scrollbar.Max=100;
Scrollbar.SmallChange = 1;
Scrollbar.LargeChange = 10;
Scrollbar.LinkedCell = "$A$1";