Public Function Get_RangeHeight(tempSheet As Worksheet, tempRange As Range) As Double
Dim RangeWidth As Double
Dim tempNum As Long
Dim NoneMergeCell As Range
If tempRange.MergeCells Then
tempRange.WrapText = True '设置单元格“自动换行”
If (tempRange.Column = tempRange.MergeArea.Column) Then '提高合并单元格处理效率:仅处理合并单元格中首列
For tempNum = tempRange.MergeArea.Column To tempRange.MergeArea.Column + tempRange.MergeArea.Columns.Count - 1 '计算合并单元格中所有列宽之和
RangeWidth = RangeWidth + Columns(tempNum).ColumnWidth
Next
tempNum = tempSheet.UsedRange.Columns.Count + 1
Do While (tempSheet.Cells(tempRange.Row, tempNum).MergeCells)
tempNum = tempNum + 1
Loop
Set NoneMergeCell = tempSheet.Cells(tempRange.Row, tempNum) '设置行中没有合并的单元格
NoneMergeCell.Rows.AutoFit
NoneMergeCell.WrapText = True
NoneMergeCell.ColumnWidth = RangeWidth
NoneMergeCell.Value = tempRange.Value
Get_RangeHeight = NoneMergeCell.Height '获取行高
NoneMergeCell.EntireColumn.Delete '不改变Sheet的Column.UsedRange.Count
End If
Else
tempRange.Rows.AutoFit
Get_RangeHeight = tempRange.Height
End If
If (Get_RangeHeight > 409) Then ' 高度大于409 设置为最大高度409
Get_RangeHeight = 409
End If
End Function