VSTO Excel插件-设置范围的例外

时间:2018-10-22 08:46:30

标签: excel excel-formula excel-addins rtd

我有一个基于VSTO的excel插件和基于XLL的UDF。我们已经实现了RTD服务器来更新实时数据。 我面临的问题是在range上设置公式。我收到以下异常:

位于System.RuntimeType.ForwardCallToInvokeMember的Stacktrace(字符串memberName,BindingFlags标志,对象目标,Int32 [] aWrapperTypes,MessageData&msgData)

在Microsoft.OfficeXP.Excel.Range.set_Formula(Object)

我在excel范围内设置了大约10000个或更多个公式。这会在将公式设置为二维数组的块中发生

range.Formula = FormulaMatrix; // string [,] FormulaMatrix-> [0,0]-> [1000,0]

我能够发现问题是Excel无法调用RTD的Connect Data。 我尝试以块为单位设置范围,并为每个块创建一个任务,然后使用WinformsSynchronization Context在UI线程上运行它。 我将可用的任务计划程序用作

var Scheduler = TaskScheduler.FromCurrentSynchronizationContext(); 并在此调度程序上开始执行任务。

但这进一步加剧了这个问题,我更经常收到上述例外情况。 上面的任何帮助将不胜感激

PS:我检查了范围是基于1的,并且本地化没有问题。在Range上使用FormulaLocal也会发生同样的问题

谢谢

0 个答案:

没有答案