gpt4 book ai didi

c# - VSTO 4 & C# NamedRange.RefersToRange 当范围很大时抛出 Com 异常

转载 作者:行者123 更新时间:2023-12-04 20:19:57 26 4
gpt4 key购买 nike

我正在使用 NamedRanges 来存储我的 Excel 工作表的“ View ”。
因此,当用户选择一个 View 时,它将获取该 View 的 NamedRange(行集合),然后隐藏这些行。但是,似乎当 NamedRange 中的实际范围变得太大时,每当我尝试引用 RefersToRange 属性时,我都会收到 COM 异常

'(ViewRange).RefersToRange' threw an exception of type 'System.Runtime.InteropServices.COMException'



真正有趣的部分是我可以在 Excel 中选择 NamedRange,它会很好地突出显示整个范围,其他属性(如 .RefersTo .RefersToR1C1 也可以正常返回)。

我通过首先创建一个包含所有行的范围,然后只是命名它来创建 NamedRange。

这是当我收到 COM 错误时 RefersToR1C1 返回的示例

"=Sheet1!R13:R23,Sheet1!R26:R39,Sheet1!R41,Sheet1!R43:R46,Sheet1!R48:R49,Sheet1!R51:R72,Sheet1!R76:R78,Sheet1!R83:R84,Sheet1!R137:R147,Sheet1!R150:R163,Sheet1!R165,Sheet1!R167:R170,Sheet1!R172:R173,Sheet1!R175:R196,Sheet1!R200:R202,Sheet1!R207:R208,Sheet1!R261:R271,Sheet1!R274:R287,Sheet1!R289,Sheet1!R291:R294,Sheet1!R296:R297,Sheet1!R299:R320,Sheet1!R324:R326,Sheet1!R331:R332,Sheet1!R385:R395,Sheet1!R398:R411,Sheet1!R413,Sheet1!R415:R418,Sheet1!R420:R421,Sheet1!R423:R444,Sheet1!R448:R450,Sheet1!R455:R456"



这是我遇到问题的代码
 Excel.Range rngAll = _Blocks.DataRange;
rngAll.EntireRow.Hidden = false;
Excel.Name ViewRange = Globals.ThisWorkbook.Names.Item(viewName, System.Type.Missing);

string addy = ViewRange.RefersToR1C1 as string; //this line works fine
ViewRange.RefersToRange.EntireRow.Hidden = true; //this line throws the COM Exception

任何帮助将不胜感激,或者如果您有更好的方法来完成我的“ View ”,或者有没有办法使用上面的公式地址来实例化一个我可以隐藏的范围?

更新!!!

好的,所以这不能回答原始问题,这就是我编辑而不是回答的原因。如果这里有著名的“Stack Overflowers”,请告诉我是否应该回答。

我确实找到了一种访问相关范围的方法,这确实解决了我的直接问题。我最终使用了以下代码行
Globals.Sheet1.InnerObject.get_Range(viewName, System.Type.Missing).EntireRow.Hidden = true;

谢谢,
皮特

最佳答案

仍然不知道为什么会失败,但工作解决方案是通过工作表的 get_Range() 方法访问名称范围。

Globals.Sheet1.InnerObject.get_Range(viewName, System.Type.Missing).EntireRow.Hidden = true; 

关于c# - VSTO 4 & C# NamedRange.RefersToRange 当范围很大时抛出 Com 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9404297/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com