VBA宏在Excel中格式化1个包含文本行的单元格,并将这些行添加到单独的行中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VBA宏在Excel中格式化1个包含文本行的单元格,并将这些行添加到单独的行中相关的知识,希望对你有一定的参考价值。
我有一个宏,使用http://gridreferencefinder.com/batchConvert/batchConvert.php将X和Y坐标转换为Lat和Long。这很好用,虽然我拿网站输出(文本区域内的文本加载)并将其粘贴回单元格A1中的excel时,它只是将textarea中的所有行粘贴到1个单元格中。
所以我想知道是否有可能创建一个宏来遍历一个单元格中的文本行,然后在每个新行之后断开并将该行放入其自己的行中,以便将所有文本行放入单独的行中。我知道我可以使用Kutools插件来实现这一点,并且可以按照我想要的方式将文本格式化为行,尽管Kutools不支持宏录制,因此无法实现自动化。这是使用宏粘贴后的外观:
答案
- 式
下面的单元格B1
中的公式并向下拖动:
=TRIM(MID(SUBSTITUTE(A1,Char(10),REPT(" ",99)),Row()*99-98,99))
- VBA
通过VBA获得相同效果的简单方法:
Sub Test()
For X = 1 To Len(Cells(1, 1).Value) - Len(Application.WorksheetFunction.Substitute(Cells(1, 1).Value, Chr(10), vbNullString)) + 1
Cells(X, 2).Value = Evaluate("TRIM(MID(SUBSTITUTE(A1,Char(10),REPT("" "",99))," & X & "*99-98,99))")
Next X
End Sub
我敢肯定,如果您加载变量而不是Cells(1, 1).value
,您可以实现您想要的。
以上是关于VBA宏在Excel中格式化1个包含文本行的单元格,并将这些行添加到单独的行中的主要内容,如果未能解决你的问题,请参考以下文章