这段代码影响速度,尽量把红色放到外面去,也就是,合并的列的宽度值固定值或者获取一次就好了。
引用的时候不用重复使用如 tempWs.Columns(1) 请定义一个变量记录,重复获取耗时的。
如果你的表格不是规则的,也就是宽度必须相对获取,那么没有优化空间了。
但,再怎么优化,处理一行也大概需要1秒左右。
If rg.MergeCells AndAlso rg.MergeArea.Columns.count>1 Then
rg.Font.Strikethrough = Strike '设置删除线
Dim width As Double = 0
Dim tempCol
For Each tempcol In rg.MergeArea.Columns
width = width + tempcol.ColumnWidth
Next
tempWs.Columns(1).WrapText = True
tempWs.Columns(1).ColumnWidth = width
tempWs.Columns(1).Font.Size = rg.Font.Size
tempcell.Value = rg.Value
tempcell.RowHeight = 0
tempcell.EntireRow.Activate
tempcell.EntireRow.AutoFit