Excel VSTO C# – 格式雷达图表类别和轴标签

我试图改变雷达图表的轴和类别标签上的文本的格式,我的代码适用于轴的字体大小,并给出了所需的输出,但是我也收到一个错误,一旦代码在ax.Format.TextFrame2.TextRange.Font.Size = 7;轴上运行ax.Format.TextFrame2.TextRange.Font.Size = 7;

debugging出错:

mscorlib.dll中发生了“System.Runtime.InteropServices.COMException”types的exception,但未在用户代码中处理。 附加信息:未指定错误(HRESULTexception: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工具栏上的button调用,但是我不认为这个错误对于任何外部的东西都没有任何问题,就好像我评论或者删除了这段代码,其余的格式化工作精细。

感谢您提供的任何帮助或build议。 请记住我对C#,VSTO和Visual Studio相对较新(6个月的经验),所以可能不会理解所有的技术术语。 如果需要,我也很乐意提供进一步的信息。 🙂

什么属性确实引发exception?

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

我build议从打破财产和方法调用链开始,并在不同的线路上声明它们。 因此,你会发现什么属性或方法确实触发了一个例外。