仅当句子之间有空行时才删除换行符/回车符

时间:2019-07-09 18:07:39

标签: regex excel vba

我正在尝试编写一个VBA脚本以在大约1600行Excel电子表格中使用,该电子表格仅删除句子之间的换行符。到目前为止,我已经尝试过删除所有换行符并将这些句子附加到一个块中。请记住,并非所有单元格在句子之间都有空白行,因此我要避免创建文本块。我已经在网上搜索了自己的问题,但在遇到具体问题时找不到任何问题。

示例字符串:

Hello world! My name is NAME and I love regEx!

I want to remove the break above, but keep the sentences on a new line.

Can this be done?

我尝试使用regEx "[\r\n]*",但是(显然)它取代了所有的线路制动器。我想我可以潜在地告诉它仅在每个句子的末尾且仅在后面有空白行时才替换回车符。

这是我到目前为止拥有的VBA模块:

Sub simpleRegex()
    Dim strPattern As String: strPattern = "[\r\n]*"
    Dim strReplace As String: strReplace = ""
    Dim regEx As New RegExp
    Dim strInput As String
    Dim Myrange As Range

    Set Myrange = ActiveSheet.Range("D1:D1596")

     For Each cell In Myrange
        If strPattern <> "" Then
            strInput = cell.Value

            With regEx
                .Global = True
                .MultiLine = True
                .IgnoreCase = False
                .Pattern = strPattern
            End With

            If regEx.Test(strInput) Then
                cell.Value = regEx.Replace(strInput, strReplace)
            End If
        End If
    Next
    MsgBox ("Completed!")
End Sub

这会循环遍历D列中的所有行,并使用regEx替换回车符。

预期结果是删除了我句子之间的空白行,但删除了所有回车实例。

0 个答案:

没有答案