如何通过 vba 在任何地方使用自动换行?

在 VBA 中,有一个名为“WrapText”的属性,您可以访问该属性以将换行文本应用于单元格或单元格区域。您必须编写代码来启用或禁用它。它是一个读写属性,因此您可以应用它,或者如果将它应用到单元格上,您也可以获得它。

在本教程中,我们将了解使用 VBA 代码应用换行文本的不同方法。

使用 VBA 将文本换行到单元格中

按照以下步骤使用 VBA 代码应用自动换行。

  1. 使用range 属性定义要应用换行文本的单元格。
  2. 键入句点以查看该单元格的属性和方法列表。
  3. 从列表中选择“WrapText”属性。
  4. 输入等号“=”并键入 TRUE 以启用自动换行。
 Sub vba_wrap_text() Range("A1").WrapText = True End Sub

您还可以通过以下方式指定单元格。

 Cells(1, 1).WrapText = True

将文本包裹在一行单元格中

如果要将文本换行应用于整个范围,则需要指定范围而不是单个单元格。

 Range("A1:A5").WrapText = True

您还可以使用“UsedRange”属性将其应用到已使用范围(选择输入数据的工作表)。

 Worksheets("Sheet1").UsedRange.WrapText = True ActiveSheet.UsedRange.WrapText = True
将文本换行应用于已用范围

在上面代码的第一行中,您指定了工作表,然后指定了“UsedProperty”来换行文本。在第二行中,您有活动工作表的已使用范围。但这两条线的工作原理是一样的。

以下是您应该了解的更多示例:

  • 非连续单元
  • 全线
  • 整栏
  • 命名范围
一些换行文本示例
 Range("A1:A10,C1:C10").WrapText = True Range("A:A").WrapText = True Range("1:1").WrapText = True Range("myRange").WrapText = True

在整个工作表中换行文本

要引用整个工作表,您需要使用 Cells 属性,如以下代码所示。

 Cells.WrapText = True Worksheets("Sheet1").Cells.WrapText = True
将文本换行到整个工作表

第一行代码引用活动工作表,第二行引用“Sheet1”工作表。您还可以使用FOR EACH (For Next)循环遍历工作簿中的所有工作表,并将换行文本应用于所有单元格。

循环使用应用换行文本
 Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets Cells.WrapText = True Next ws

在上面的代码中,您将“ws”作为变量,然后 For Each Loop 循环遍历工作簿中的所有工作表,并应用使用 Cells 来换行整个工作表的文本。

禁用自动换行

正如您所看到的,您需要启用 WrapText 属性,同样您可以使用 add 声明 FALSE 来禁用它。

 Range("A1").WrapText = False

注意:您需要了解一件事,如果单元格中有一个值,并且单元格宽度足以存储该值,那么即使您将文本应用于该行,Excel也不会将内容移动到下一行

添加评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注