0

我正在使用 Excel 为我的数据生成一份汇总报告。我希望每个夏天都显示在一个单元格中。我使用了VBA,我得到了这样的东西:

在此处输入图像描述

我希望能够像这样显示数据:

在此处输入图像描述

所有行都应以“增加”或“减少”开头。我怎样才能在 VBA 中做到这一点?(我有很多像本例中那样的单元格)如何遍历特定单元格内的文本并在每个单词之后添加一个新行?

4

1 回答 1

3

如果您正在尝试修复宏以便将来正确格式化行,那么您需要通过将元素与 vbLf 连接来添加换行符(我自己使用 CrLf,但 Excel,对于单元格,只关心换行符) .

感谢@retailcoder 指出 vbNewLine == vbCrLf,因此您可以使用对您更有意义的方法。

所以像 Range.Value = "line 1" & vbcrlf & "line 2" & vbcrlf & "line 3" 等:

Range.Value = _
    "line 1" & vbcrlf & _
    "line 2" & vbcrlf & _
    "line 3" 

或者,就个人而言,我更喜欢通过循环或使用 Join() 来构造文本:

Range.Value = Join(Array( _
    "Line 1", _
    "Line 2", _
    "Line 3"), vbCrLf)

要使其实际显示在新行上,您需要使用Range.WrapText = True

但是,我意识到一种解释是您只想快速修复工作表上已有的内容。如果是这种情况,那么只需手动查找和替换单词“增加”或“减少”,分别使用Char(10)IncreaseChar(10)Decrease,其中 Char(10) 是您可以通过按 Alt+Numpad 0010 或粘贴值获得的公式的结果=CHAR(10)。然后使用公式删除第一个字符。

于 2013-09-01T12:16:39.503 回答