我在一个单元格中有如下值,在字符串值之间输入键(返回)值可能是,有时单元格可以有更多的值,而有时可能是更少的值。我只想将单元格拟合为 XYZ 和 ABC 值(或单元格中有多少个)。
我尝试了 Autofit 选项但没有用
"XYZ <enter key>
ABC <enter key>
<enter key>
<enter key>
<enter key>"
如何使用 VBA 代码实现这一点?
我认为您想调整单元格的大小,就好像它没有尾随<enter key>
即大小
"XYZ <enter key>
ABC <enter key>
<enter key>
<enter key>
<enter key>"
好像它是
"XYZ <enter key>
ABC"
为此,您需要计算所需的高度。尝试这个:
Sub AdjustCell()
Dim RwHeight As Long
Dim NumLines1 As Long, NumLines2 As Long
Dim a() As String
With ActiveCell
If .Value = "" Then Exit Sub
.EntireColumn.ColumnWidth = 255
.EntireColumn.AutoFit
.EntireRow.AutoFit
RwHeight = .RowHeight
a = Split(CStr(.Value), vbLf)
NumLines1 = UBound(a)
NumLines2 = NumLines1
Do While a(NumLines2) = ""
NumLines2 = NumLines2 - 1
Loop
.EntireRow.RowHeight = (NumLines2 + 2) / (NumLines1 + 2) * RwHeight
End With
End Sub
这假设活动单元格包含行中最大的单元格(按高度)
该AutoFit
方法应该做你想做的。尝试这个:
ActiveCell.EntireRow.AutoFit
ActiveCell.EntireColumn.AutoFit
或者:
Range("A1").EntireRow.AutoFit
Range("A1").EntireColumn.AutoFit
等等。