Excel数据导出修正号错误/删除绿色三angular形

在使用第三方组件导出数据后,Excel工作表中的数据input不正确。 Excel认为有些值是string,而它们是数字,一个绿色的三angular形显示出来。

我们编写了以下代码来解决这个问题:

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 

这消除了所有这些小绿色三angular形,但真的很慢。

这个问题

有没有更快的方式来快速转换一个范围的数据,所以绿色三angular不显示?

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

假设一个范围NarrowedRange和一张工作Sheet (用A1:A8代替你自己的范围,为你的工作Sheet代替objWorksheetReport

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

只会获得原始范围的文本值元素,因此只需更改这些元素即可。