我有一个创建和格式化销售报价的 excel vba 宏。我有一个自动调整合并单元格的功能。我使用此功能来自动调整描述字段,因为其中一些很长,一些很短。在一个典型的报价中,这个函数被调用了大约 40 次。宏在一秒钟内完成。如果我再次运行完全相同的宏(可能对它的显示方式进行不同的设置),则需要 30-60 秒以上。除了以下块之外,宏的其余部分没有任何内容会随着每次运行而减慢:
对于完全相同的一组输入,是否有可能使此代码运行得更慢?
Sub AutoFit_Height(ByVal Target As Range)
Dim MergeWidth As Single
Dim cM As Range
Dim CWidth As Double
Dim NewRowHt As Double
With Target
.MergeCells = False
CWidth = .Cells(1).ColumnWidth
MergeWidth = 0
For Each cM In Target
cM.WrapText = True
MergeWidth = cM.ColumnWidth + MergeWidth
Next
'small adjustment to temporary width
MergeWidth = MergeWidth + Target.Cells.count * 0.66
.Cells(1).ColumnWidth = MergeWidth
.EntireRow.AutoFit
NewRowHt = .RowHeight
.Cells(1).ColumnWidth = CWidth
.MergeCells = True
.RowHeight = NewRowHt
End With
End Sub