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不支持宏录制,因此无法实现自动化。这是使用宏粘贴后的外观:

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

This is how it needs to be formatted.

答案

下面的单元格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个包含文本行的单元格,并将这些行添加到单独的行中的主要内容,如果未能解决你的问题,请参考以下文章

如何从包装的文本单元格中提取特定的文本行?

用户使用宏在excel中插入图片

Excel 公式或规则或 vba 比较 2 个单元格并仅突出显示差异

VBA 在文本行中搜索值

excel中怎样用vba使单元格在特定条件下才可以编辑?

使用 VBA for Excel 从大量单元格中删除“额外”空格(超过 1 个)的更快方法