最快的方法来枚举或查找所有空的Excel单元格,并更改其样式或做一些其他处理

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

我厌倦了Range,Value,Value2等等,但是当Excel Sheet比较大的时候需要相当长的时间。 我相信还有一些其他有效的方法。 这将是很好,如果你可以显示一些示例代码片段。

答案是简单的:从excel中获取一个批量的数组(如何searchSO) – 为空单元格testingerray的值,然后仅访问excel中的空单元格。

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

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

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

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

更新我不是C#程序员,但我可以告诉你如何在VBA中做到这一点。 假设interop公开大部分/所有相同的方法和function,你应该希望能够为你的目的翻译这个。

 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