如何使用Interop设置Excel标签颜色

我以为这会很容易,但显然不是。 我正在研究的这份报告有一些资料来源于陨石坑。 这意味着我需要隐藏工作表的2/3页面,并将隐藏的选项卡变成红色,以清楚哪些正在使用,哪些不是。 到目前为止,我已经以各种方式尝试过Tab.Color和Tab.ColorIndex,并没有find办法。

全ARGB:

System.Drawing.Color clr = System.Drawing.Color.FromArgb(255, 255, 0, 0); int index = clr.ToArgb(); int hiddenTabColor = index; ... worksheet.Tab.Color = hiddenTabColor; 

添加System.ComponentModel以使用Converter:

 var converter = System.ComponentModel.TypeDescriptor.GetConverter(typeof(Color)); Color clr = (Color)converter.ConvertFromString("#FFFF0000"); ... worksheet.Tab.Color = clr; 

这些我已经尝试了十几个不成功的组合。 结果总是一个显示xlAutomatic为黑色的选项卡。 我已经尝试了方法的每个重载。

重要的信息是,这是在Visual Studio 2013中使用Interop编写到Microsoft Office Professional Plus 2013(Excel)。

使用LINQPad,我没有任何麻烦得到这个工作:

 var xl = (Excel.Application) Marshal.GetActiveObject("Excel.Application"); var xls = (Excel.Worksheet)xl.ActiveWorkbook.ActiveSheet; xls.Tab.ColorIndex = (Excel.XlColorIndex)3; xls.Tab.Color = 255;