枚举或查找所有空Excel单元格并更改其样式或执行其他处理的最快方法

本文关键字:其他 执行 样式 处理 方法 查找 Excel 枚举 单元格 | 更新日期: 2023-09-27 18:14:17

这可能是枚举或迭代的最佳方式,或者只是在Excel中查找空单元格或具有特定数据结构的单元格,稍后一旦找到它,就可以对其进行一些处理。

我累了范围,值,Value2等,但它需要相当长的时间当Excel表相当大。我相信一定有其他有效的方法。如果您能展示一些示例代码片段就太好了。

枚举或查找所有空Excel单元格并更改其样式或执行其他处理的最快方法

答案相对简单:从excel中批量获取数组(搜索SO查找如何)-测试数组的值是否为空单元格,然后仅访问excel中的空单元格。

这有点麻烦,但是最快的方法,因为迭代每个单元格比简单地批量获取所有数据要慢得多。

要查找空白单元格,请使用范围对象的.SpecialCells方法。

http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.range.specialcells (v = office.11) . aspx

.specialCells方法返回匹配条件的范围对象(即xlCellTypeVisiblexlCellTypeBlanks等)。然后你可以迭代这个范围来执行你的格式化,等等。

更新我不是c#程序员,但我可以告诉你我如何在VBA中做到这一点。假设互操作暴露了大部分/所有相同的方法和功能,您应该能够将其转换为您的目的。

Sub ColorVisibles()
Dim rng As Range
Dim rngBlanks As Range
Dim blanksExist As Boolean
'define your range
Set rng = Range("A1:AA300")
'check to make sure there are blank cells in the range:
blanksExist = Application.WorksheetFunction.CountBlank(rng) > 0
If blanksExist Then
    Set rngBlanks = rng.SpecialCells(xlCellTypeBlanks)
    rngBlanks.Interior.Color = vbYellow
Else:
    MsgBox "No blank cells exist in the specified range.", vbInformation
End If
End Sub