代码之家  ›  专栏  ›  技术社区  ›  mas_oz2k1

Excel区域使用问题(单元格错误检查)

  •  4
  • mas_oz2k1  · 技术社区  · 16 年前

    每个单元格都有以下错误: “此单元格中的数字格式为文本或前面有撇号” 要复制错误: 我必须将来自web服务的结果存储为字符串数组: 样本:(3×3数组)

    402568.03美元26.2%30052

    107719.59美元7.0%55176

    81370.35美元5.3%54365

    设values为保存sample的字符串数组(string[,]values) 设r为目标范围(excel.range r) 如果我这样做: r.value2=值;

    我想知道如何摆脱它。任何.net代码都会很棒(c或vb.net)

    注: 1)在每个单元中循环不是一个选项,因为数组可能很大(100,54)或(1024,104)。我已经做了,它没有这个错误,但性能很差。

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

    3)我注意到我使用conver to number上下文菜单解决了这个问题,但是可以通过编程方式对受影响的范围执行此操作。

    1 回复  |  直到 16 年前
        1
  •  3
  •   Phil Rykoff    16 年前

    可以基于每个单元格以编程方式忽略错误。这可以通过以下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种错误类型

    编辑:

    如果首先使用上述代码和循环将子例程添加到Excel文件中,然后从VSTO调用此子例程:

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

    这有用吗?