我想设置每列的宽度,以便包装的文本单元格中的单个单词不会分成2行。对于宽度小于列宽度的单词,Excel会处理此问题。但是,比列宽的单词是分开的。我希望该列自动格式化宽度,使其足够宽,以便最长的单词不需要拆分。 Excel有办法处理这个吗?
答案 0 :(得分:1)
这是一个非常好的近似值。它使列的大小比最长的单词宽一点。因此,单元格的宽度与最长单词的宽度完全相同,但它会更宽一点,但它会阻止最长的单词被分割。
sub foo是将列大小调整为Sheet1上单元格A1中最大单词的示例。您可以添加另一个函数来检查列中的所有单元格,以获取列中最长的单词。现在我们只是检查列中一个单元格中最长的单词。
Option Explicit
Sub foo()
FitColToLongestWord Sheet1.Range("A1")
End Sub
Sub FitColToLongestWord(cell As Range)
Dim strLongestWordLen As String
Dim str() As String
Dim LongestWordLength As Integer
str() = Split(cell.Value, " ")
LongestWordLength = GetLongestWordLength(str())
Sheet1.Columns(cell.Column).ColumnWidth = LongestWordLength
End Sub
Function GetLongestWordLength(str() As String) As Integer
Dim i As Integer
Dim max As Integer
Dim current As Long
max = Len(str(LBound(str)))
For i = LBound(str) To UBound(str)
current = Len(str(i))
If current > max Then
max = current
End If
Next i
GetLongestWordLength = max
End Function