我的每个单元格都出现以下错误:
“此单元格中的数字格式为文本或前面带有撇号”
要复制错误:
我必须将来自 Web 服务的结果存储为字符串数组:
示例:(3 x 3 数组)
$402,568.03 26.2% 30,052
$107,719.59 7.0% 55,176
$81,370.35 5.3% 54,365
令values为保存样本的字符串数组(string[]values)
令 r 为目标范围 (Excel.Range r)
如果我做:
r.Value2 = 值;
我想知道如何摆脱它。任何 .net 代码都很棒(C# 或 VB.NET)
笔记:
1) 不能在每个单元格中循环,因为数组可能很大 (100, 54) 或 (1024, 104)。我已经完成了,没有这个错误,但是性能很差。
2)禁用错误不是一个选项,因为我无法控制客户端设置。
3)我注意到我使用转换为数字上下文菜单修复了该问题,但可以通过编程方式对受影响的范围执行此操作。
您可以以编程方式忽略每个单元格的错误。这可以通过以下 vba 代码来完成:
<tableObject>.Range("Q1:Q1000").Errors.Item(<errorNo>).Ignore = true
where <tableObject>
是您的数据所在的表,并且<errorNo>
是以下错误类别之一:
1 xlEvaluateToError
2 xlTextDate
3 xlNumberAsText
4 xlInconsistentFormula
5 xlOmittedCells
6 xlUnlockedFormulaCells
7 xlEmptyCellReferences
当然你可以循环禁用所有 7 种错误类型
edit:
首先使用上面的代码和循环向您的 excel 文件添加一个子例程,然后从 vsto 调用该子例程怎么样:
ThisWorkbook.Application.Run("Sheet1.SayHelloVBA")
这有用吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)