使用第三方组件导出数据后,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
这会移除所有那些绿色小三角形,但速度很慢。
问题
是否有更快的方式快速转换数据范围,以便绿色三角形不显示?
答案 0 :(得分:4)
使用范围的.SpecialCells()
方法将其缩小到仅需要更改的单元格。
假设范围NarrowedRange
和工作表Sheet
(替换您自己的A1:A8
范围和objWorksheetReport
表单
NarrowedRange =
Sheet.Range("A1:A8").SpecialCells(Excel.XlCellType.xlCellTypeConstants,
Excel.XlSpecialCellsValue.xlTextValues)
只会获得原始范围的文本值元素,因此只需相应地更改它们。