使用Excel VBA添加辅助轴

时间:2015-07-15 15:13:13

标签: excel vba

我编写的代码不仅仅是添加辅助轴。但是,有时,它会在代码末尾的NodeList上的最后一个使用命令返回运行时错误。为了完整起见,我转录了整个节目。这种运行时错误并不总是会发生,但我似乎并不了解它何时发生,或者为什么......你知道如何解决这个问题吗?

任何帮助将不胜感激

    if (MyTreeView.Items.Cast<TreeViewItem>().Any(item => item.Header.ToString() == @"C:\"))
    {
       MessageBox.Show(@"Tree contains C:\");
    }

1 个答案:

答案 0 :(得分:0)

免责声明:严格来说,这不是一个答案,因为它不包含新信息,只重复它。但是因为这个问题没有得到答复(除了@An old man in the sea.隐藏在评论中的暗示之外),我想以通常的方式将其写下来,以便可能帮助其他人。

我还收到了一些非常有用的错误消息,例如System.Runtime.InteropServices.COMException (0x80004005): Error HRESULT E_FAIL has been returned from a call to a COM component.

正如@An old man in the sea.在评论中提到的那样,在轴连接了一些数据之后,我移动了有关格式化轴瓦,比例等的有问题的部分。这导致了例外的消失,并在几天后取得了进展: - )

所以在伪代码而不是

FormatSecondaryAxis(chart);
DrawDataToSecondaryAxis(chart);

只需交换订单并先进行绘图,然后再格式化。

哦顺便说一下,这个C#代码:

chart.HasAxis[Excel.XlAxisType.xlValue, Excel.XlAxisGroup.xlSecondary] = true;
chart.HasAxis[Excel.XlAxisType.xlCategory, Excel.XlAxisGroup.xlSecondary] = true;
chart.SetElement(Microsoft.Office.Core.MsoChartElementType.msoElementSecondaryValueAxisTitleAdjacentToAxis);

没有做到这一点。如果没有实际数据没有连接到轴,则最后一行抛出异常。