2015-09-04 88 views
1

我想改变雷达图表的轴和类别标签上的文本的格式,我的代码适用于轴的字体大小,并给出所需的输出,但我'一旦该代码在运行线从调试ax.Format.TextFrame2.TextRange.Font.Size = 7;Excel VSTO C# - 格式雷达图表类别和轴标签

错误米还接收一个错误:

“System.Runtime.InteropServices.COMException”类型的例外发生在mscorlib.dll但在没有处理用户代码。 附加信息:未指定的错误(异常来自HRESULT:0X80004005(E_FAIL))

如何更改类别标签,什么可能会在这里造成的错误,一旦动作完成?

下面的代码:

public static void FormatRadarLabels(Excel._Application xlApp) 
{ 
    Excel.Chart chart = null; 
    xlApp.ScreenUpdating = false; 

    try { 

     chart = xlApp.ActiveChart as Excel.Chart; 

     foreach (Excel.Axis ax in chart.Axes()) { 
      ax.Format.TextFrame2.TextRange.Font.Size = 7; 
     } 
    } 
    finally { 
     if (chart != null) Marshal.ReleaseComObject(chart); 
     xlApp.ScreenUpdating = true; 
    } 

} 

的方法被另一个类的方法,它是通过Excel工具栏上的按钮被称为所谓的,但我不认为错误有任何问题与任何外部的如果我评论或删除了这段代码,其余的格式化工作正常。

谢谢你提供的任何帮助或建议。请记住,我对C#,VSTO和Visual Studio相对较新(6个月的经验),因此可能无法理解所有技术术语。如果需要,我也很乐意提供进一步的信息。 :)

回答

0

什么属性确切地引发异常?

ax.Format.TextFrame2.TextRange.Font.Size = 7;

我建议从打破属性和方法调用链开始,并在单独的行中声明它们。因此,您会发现哪些属性或方法确实触发了异常。