No.1
Excel工具欄中有一個自動換行功能,應該都會使用。
其功能是,當表格寬度一定的情況下,表格內容根據其寬度換行排列。
不會出現超出表格寬度或隱藏截取超出的數據。
這個功能在做表格的時候相當有用,誰都不愿意把內容截取掉,對于超出表格的內容打印出來,也十分不美觀。
本節介紹一下如何用VBA代碼來實現自動換行功能。
其方法很簡單,使用到一個屬性:
屬性的內容如下圖所示:
No.2
是Range對象下的一個屬性。
使用方法:
Range("A1").=True‘換行
Range("A1").=False‘不換行
設置其值為True表示換行vb點擊按鈕出現對話框,False為不換行。
似乎也沒什么可難理解的,只要把屬性名記住就行。
如下以一個簡單例子來看一下效果:
No.3
上圖例子單擊按鈕,彈出輸入對話框,輸入一些數據,確定后自動實現換行。
具體看下代碼如何實現這個過程:
Private Sub SetWrapTextRows()
ActiveSheet.Cells(1, 1).Offset(1, 0).Resize(Cells.Rows.Count - 1, Cells.Columns.Count).Clear
Dim Str As String

Str = "ABCDEFGHIJKLMN1234569,這是一個換行例子,根據文字長度不同,設定行寬,自動換行。"
Str = InputBox("", "輸入數據:", Str)
If VBA.Len(Str) = 0 Then MsgBox "沒有什么數據,隱藏列!", vbInformation, "提示": Exit Sub
Dim cell As Range
Set cell = ActiveSheet.Range("B2:B10")'定義數據區域
With cell
With .Offset(0, -1)
.Formula = "=row()-1"

.Borders.LineStyle = 1
.HorizontalAlignment = xlCenter
.Font.Bold = True
.Interior.Color = RGB(252, 121, 112)
End With
.Item(1).Value = Str
.FillDown
.ColumnWidth = VBA.Len(Str)

.WrapText = True '設置換行
.Rows.AutoFit
.Borders.LineStyle = 1
.HorizontalAlignment = xlCenter
.Font.Size = 12
.Interior.Color = RGB(112, 211, 212)
End With
MsgBox "當前行寬:" & cell.Width, vbInformation, "提示"
End Sub
實現自動換行,在程序中對表格的處理有很好的實用性。只要把應該換行的單元區域定義好,然后應用屬性即可。
當然了vb點擊按鈕出現對話框,些屬性還可以返回值,如果一個區域里既有換行單元又有不換行單元,那么就會返回一個Null值。