我正在使用 Excel 为我的数据生成一份汇总报告。我希望每个夏天都显示在一个单元格中。我使用了VBA,我得到了这样的东西:
我希望能够像这样显示数据:
所有行都应以“增加”或“减少”开头。我怎样才能在 VBA 中做到这一点?(我有很多像本例中那样的单元格)如何遍历特定单元格内的文本并在每个单词之后添加一个新行?
如果您正在尝试修复宏以便将来正确格式化行,那么您需要通过将元素与 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)Increase
或Char(10)Decrease
,其中 Char(10) 是您可以通过按 Alt+Numpad 0010 或粘贴值获得的公式的结果=CHAR(10)
。然后使用公式删除第一个字符。