2015-09-04 84 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;

我建議從打破屬性和方法調用鏈開始,並在單獨的行中聲明它們。因此,您會發現哪些屬性或方法確實觸發了異常。