我正在尝试编写一个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替换回车符。
预期结果是删除了我句子之间的空白行,但删除了所有回车实例。