PRELUDE:这不是一个重复,有一个类似的问题HERE,但他们的解决方案对我的问题不起作用。 (他们的解决方案适用于以下代码)
我试图让整行的高度自动调整具有最大文本块的单元格。
With my_xl_workbook.Sheets(1).Range(rng)
.WrapText = True
.Merge
.value = DegreesInformationArray(j, i)
.Borders.LineStyle = 1
.Borders.Weight = 4
.EntireRow.AutoFit
End With
我也尝试过更改设置属性的顺序,但没有成功。
欢迎提出任何提示,建议或姓名。 :)
(编辑:插入正确的图像)
答案 0 :(得分:1)
这是一个解决方案:
Sub fitheight()
Dim h, ma
h = 0
For Each c In Selection
With c
ma = .MergeArea.Address
If InStr(ma, .Address) = 1 Then
.UnMerge
.EntireRow.AutoFit
If .Height > h Then
h = .Height
End If
ActiveSheet.Range(ma).Merge
.RowHeight = h
End If
End With
Next
End Sub
工作原理
该程序假设您根据选择自动设置高度。它可以很容易地适应在一个范围内操作。
它使用两个变量:
h
保持最大身高ma
保存每个单元格合并区域的范围它遍历选择中的每个单元格,在那里:
ma
变量中加载合并区域。C3
和D3
,则选择将遍历C3
和D3
。我们只对第一个合并单元感兴趣,我们可以使用Instr
测试来完成。h
变量测试高度。如果更大,则将h
设置为新的高度。ma
变量重新合并单元格。h
,此时此高度是目前为止的最大高度。