Excel 数据导出修复数字错误/删除绿色三角形
使用第三方组件导出数据后,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
这会删除所有那些绿色小三角形,但速度确实很慢。
问题
是否有更快的方法来快速转换一系列数据,这样绿色三角形就不会出现?
After exporting data using a third party component the data in the excel sheet isn't type correctly. Excel thinks that some values are string while they are numbers and a little green triangle shows up.
We've coded the following to fix this:
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
This removes all those little green triangles but is really slow.
The question
Is there a faster way to convert a Range of data quickly so the green triangles don't show up?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用范围的
.SpecialCells()
方法将范围缩小到仅需要更改的单元格。假设一个范围
NarrowedRange
和一个工作表Sheet
(用您自己的范围替换A1:A8
,并用objWorksheetReport
替换您的sheet)只会为您提供原始范围的文本值元素,因此只需相应地更改它们即可。
Use the
.SpecialCells()
method of the range to narrow it down to only those cells that need to be changed.Assuming a range
NarrowedRange
and a worksheetSheet
(substitute your own range forA1:A8
, andobjWorksheetReport
for your sheet)will get you only the text value elements of your original range, so just change those accordingly.