优秀的编程知识分享平台

网站首页 > 技术文章 正文

VBA编程,如何设置自动换行,表格设置就这么简单

nanyue 2024-11-08 12:43:12 技术文章 1 ℃

No.1

Excel工具栏中有一个自动换行功能,应该都会使用。

其功能是,当表格宽度一定的情况下,表格内容根据其宽度换行排列。

不会出现超出表格宽度或隐藏截取超出的数据。

这个功能在做表格的时候相当有用,谁都不愿意把内容截取掉,对于超出表格的内容打印出来,也十分不美观。

本节介绍一下如何用VBA代码来实现自动换行功能。

其方法很简单,使用到一个属性:WrapText

属性的内容如下图所示:

No.2

WrapText是Range对象下的一个属性。

使用方法:

Range("A1").WrapText=True‘换行

Range("A1").WrapText=False‘不换行

设置其值为True表示换行,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

实现自动换行,在程序中对表格的处理有很好的实用性。只要把应该换行的单元区域定义好,然后应用WrapText属性即可。

当然了,些属性还可以返回值,如果一个区域里既有换行单元又有不换行单元,那么就会返回一个Null值。

欢迎关注、收藏。

最近发表
标签列表