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

发布于 2024-11-28 13:03:04 字数 518 浏览 0 评论 0原文

使用第三方组件导出数据后,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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

茶底世界 2024-12-05 13:03:04

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

假设一个范围 NarrowedRange 和一个工作表 Sheet(用您自己的范围替换 A1:A8,并用 objWorksheetReport 替换您的sheet)

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

只会为您提供原始范围的文本值元素,因此只需相应地更改它们即可。

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 worksheet Sheet (substitute your own range for A1:A8, and objWorksheetReport for your sheet)

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

will get you only the text value elements of your original range, so just change those accordingly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文