使用 Excel 删除多个输入



这个问题被问了很多次可能是相同的,但我还没有找到特定的解决方案。

我有ms访问数据库,有一些字段带有" Long Text ' 文本格式 ' Rich Text

我在Excel中创建了一个使用此数据库并从这些字段中获取值的宏。在 excel 中获取值后,它向我显示带有 Html 标签的字符串。

我正在使用从这里复制的以下功能。 这很好,删除所有标签,但它给我的输出如下

函数前:

<div>xxxxxxx ccccccccd eeerr sdff aerderfng</div>
<div>&nbsp;</div>
<div>xxxxxx rrrrrr</div>
<div>-&gt; V.tredf</div>

应用函数后

xxxxxxx ccccccccd eeerr sdff aerderfng

xxxxxx rrrrrr
-> V.tredf

我想从最终输出中删除那些额外的换行符或 Enter。我正在为此苦苦挣扎。

我的愿望输出我想要的东西是这样的

"xxxxxxx ccccccccd eeerr sdff aerderfng
xxxxxx rrrrrr
-> V.tredf"

只需将替换字符加倍,例如多次,最后只剩下一个换行符

Replace(sInput, vbNewLine & vbNewLine, vbNewLine)
Replace(sInput, Chr(13) & Chr(13), Chr(13))
Replace(sInput, Chr(10) & Chr(10), Chr(10))
Replace(sInput, Chr(10) & Chr(13) & Chr(10) &Chr(13), Chr(10) & Chr(13))
Replace(sInput, Chr(13) & Chr(10) & Chr(13) & Chr(10), Chr(13) & Chr(10))

您可以使用如下所示RegEx来摆脱所有此类字符。采用它以满足您的要求。

Public Sub RemoveBlankNewLineChar()
    Dim rgEx As Object
    Set rgEx = CreateObject("VBScript.RegExp")
    With rgEx
        .Global = True
        .MultiLine = True
        .Pattern = "n+"
        ' Adjust Selection part with suitable Excel Range References.
        Selection.Value = .Replace(Selection.Value, vbCrLf)
    End With
End Sub

最新更新