Excel数据导出修复数字错误/删除绿色三角形

时间:2011-08-08 07:30:27

标签: .net vb.net excel office-interop office-2007

使用第三方组件导出数据后,Excel工作表中的数据输入不正确。 Excel认为某些值是字符串,而它们是数字,并显示一个小的绿色三角形。

我们已编码以下代码来解决此问题:

For Each objCell As Microsoft.Office.Interop.Excel.Range In objWorkSheetReport.Range(objWorkSheetReport.Cells(1, 1), objWorkSheetReport.Cells(Me.RowCount + 10, Columns.Count + 10)).Cells
    If IsNumeric(objCell.Value) Then
        objCell.Value = CDbl(objCell.Value)
    End If
Next

这会移除所有那些绿色小三角形,但速度很慢。

问题

是否有更快的方式快速转换数据范围,以便绿色三角形不显示?

1 个答案:

答案 0 :(得分:4)

使用范围的.SpecialCells()方法将其缩小到仅需要更改的单元格。

假设范围NarrowedRange和工作表Sheet(替换您自己的A1:A8范围和objWorksheetReport表单

NarrowedRange = 
    Sheet.Range("A1:A8").SpecialCells(Excel.XlCellType.xlCellTypeConstants,
                                      Excel.XlSpecialCellsValue.xlTextValues)

只会获得原始范围的文本值元素,因此只需相应地更改它们。