2013-09-01 234 views
0

我使用Excel为我的数据生成夏季报告。我希望每个夏令都显示在一个单元中。我用VBA,我得到了这样的事:在Excel中使用VBA将文本分割为几行(单元格内)

enter image description here

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

enter image description here

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

回答

3

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

感谢@retailcoder指出vbNewLine == vbCrLf,所以你可以使用哪一个对你更有意义。

所以像Range.Value = “1线” & vbcrlf & “线路2” & vbcrlf & “3行” 等:

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

或个人而言,我更喜欢以构建通过文本循环或使用join()方法:

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

因为这实际上在新的行显示,您需要仔细检查自动换行是(Excel将自动设置上,但以防万一它已被覆盖通过使用Range.WrapText = True

但是别的东西),我认识的解释是,你只是想快速修复什么已经是在纸张上。如果是这种情况,那么只是做手工查找和单词“增加”或分别,“减少”与Char(10)IncreaseChar(10)Decrease的更换,其中CHAR(10)你可以通过按Alt +数字键盘0010得到什么,或者在粘贴公式=CHAR(10)的结果值。然后使用公式删除第一个字符。

+0

是的,这将工作(假设COM1等是你建造的线说“增加X%..”)。不管你最后一行是什么,你都不需要vbLf。 –

+0

请注意,“回车”+“换行”('vbCrLf')也可以用更易读的'vbNewLine'来引用。 –

+0

欧凯谢谢你,所以可以说我用这个现在: 选择= COM1&vbLf&COM2&vbLf&COM3与COM4 vbLf如果 的元素之一不存在(如果我使用例如一个条件)然后我得到空行/我该如何避免它? – user1040563

相关问题