VBA宏在Excel中格式化1个包含文本行的单元格,并将这些行添加到单独的行中

问题描述 投票:-1回答:1

我有一个宏,使用http://gridreferencefinder.com/batchConvert/batchConvert.php将X和Y坐标转换为Lat和Long。这很好用,虽然我拿网站输出(文本区域内的文本加载)并将其粘贴回单元格A1中的excel时,它只是将textarea中的所有行粘贴到1个单元格中。

所以我想知道是否有可能创建一个宏来遍历一个单元格中的文本行,然后在每个新行之后断开并将该行放入其自己的行中,以便将所有文本行放入单独的行中。我知道我可以使用Kutools插件来实现这一点,并且可以按照我想要的方式将文本格式化为行,尽管Kutools不支持宏录制,因此无法实现自动化。这是使用宏粘贴后的外观:

This is how it looks once pasted using my Macro然后在这里是我想格式化它:

This is how it needs to be formatted.

excel vba text-formatting
1个回答
0
投票

下面的单元格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,您可以实现您想要的。

© www.soinside.com 2019 - 2024. All rights reserved.