首页 > 其他 > 详细

VSTO 高性能的获取EXCEL中的合并单元格

时间:2021-07-15 23:51:00      阅读:48      评论:0      收藏:0      [点我收藏+]

正常获取合并单元格通常是获取 UsedRange然后foreach每一个range来判断是否是合并单元格,但是这种方法对于EXCEL中包含大量数据的情况下,

效率非常低。经研究发现可以使用如下方法来获取合并单元格,性能大幅度提升。

这里使用VBA代码演示,VSTO用法基本相同。

 1 Sub DetectMerged()
 2 Dim rng1 As Range
 3 Dim rng2 As Range
 4 On Error Resume Next
 5 Set rng1 = Intersect(Cells.SpecialCells(xlFormulas), Cells.SpecialCells(xlBlanks))
 6 Set rng2 = Intersect(Cells.SpecialCells(xlConstants), Cells.SpecialCells(xlBlanks))
 7 On Error GoTo 0
 8 If Not rng1 Is Nothing Then MsgBox "Merged formulae cells in " & rng1.Address(0, 0)
 9 If Not rng2 Is Nothing Then MsgBox "Merged constant cells in " & rng2.Address(0, 0)
10 End Sub

 

这里得到 rng1 和rng2 后 再使用foreach就可以。但是,也要判断一下是否是合并单元格。

VSTO 高性能的获取EXCEL中的合并单元格

原文:https://www.cnblogs.com/jackcong/p/15017171.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!