Excel范围使用问题(单元格错误检查)

我为每个单元格有以下错误:“该单元格中的数字被格式化为文本或前面加撇号”要复制错误:我必须存储来自Web服务作为string数组的结果:示例:(3由3个arrays)

$ 402,568.03 26.2%30,052

$ 107,719.59 7.0%55,176

$ 81,370.35 5.3%54,365

让值为string数组,保存示例(string[,]值)设r是目标的范围(Excel.Range r)如果我这样做:r.Value2 = values;

我想知道如何摆脱它。 任何.net代码将是伟大的(C#或VB.NET)

注意:1)因为数组可能相当大(100,54)或(1024,104),所以在每个单元中循环不是一个选项。 我已经做了,它没有这个错误,但性能是非常糟糕的。

2)禁用错误不是一个选项,因为我没有控制客户端设置。

3)我注意到,我使用转换到数字上下文菜单修复了这个问题,但是可以通过编程的方式来实现。

您可以编程方式忽略每个单元的错误。 这可以通过以下vba代码来完成:

<tableObject>.Range("Q1:Q1000").Errors.Item(<errorNo>).Ignore = true 

其中<tableObject>是您的数据所在的表, <errorNo>是以下错误类别之一:

 1 xlEvaluateToError 2 xlTextDate 3 xlNumberAsText 4 xlInconsistentFormula 5 xlOmittedCells 6 xlUnlockedFormulaCells 7 xlEmptyCellReferences 

当然你可以循环禁用所有7种错误types

编辑:

首先使用上面的代码和循环在你的excel文件中添加一个子程序,然后从vsto调用这个子程序:

 ThisWorkbook.Application.Run("Sheet1.SayHelloVBA") 

这个工作吗?