如何从单元格中删除换行符,但将地址格式保留在同一单元格VBA中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从单元格中删除换行符,但将地址格式保留在同一单元格VBA中相关的知识,希望对你有一定的参考价值。

我试图删除换行符的单元格是这样的:

(Blank line break)
Test Company
1640 Test Avenue,
New York, NY 10035
(000)123-456    
(Blank line break)

我想删除有换行符的两行。香港专业教育学院尝试使用查找和替换来替换替换与替代代码0010的换行符,但它创建一个长字符串。

我想最终得到这个:

Test Company
1640 Test Avenue,
New York, NY 10035
(000)123-456  

任何帮助,将不胜感激。

答案

像这样的东西

Dim v
v = Trim(cell.Value)
if left(v,1)=vblf then v = right(v, len(v)-1)  'remove leading break
if right(v,1)=vblf then v = left(v, len(v)-1)  'remove trailingbreak
v = replace(v, vbLf & vbLf, vbLf)              'remove blank lines
cell.value=v
另一答案

这是一个类似于工作表TRIM函数的UDF,但允许您指定要修剪的字符:

Option Explicit
Function trimCHAR(ByVal S As String, char As String)
  Dim RE As Object
  Dim I As Long

Set RE = CreateObject("vbscript.regexp")
With RE
    .Global = True
    .MultiLine = True

'need to do separately, otherwise multiple chars within will
'be removed
        .Pattern = char & "$"
        S = .Replace(S, "") 'Remove extra chars within or at end of string
        .Pattern = "^" & char
        S = .Replace(S, "") 'Remove extra chars at start of string
End With
trimCHAR = S
End Function

在您的情况下,您可以使用它:

=trimCHAR(cell_ref,CHAR(10))

或者您可以将它用作宏的一部分,迭代所有要处理的单元格。

这个想法来自Power Query的Text.Trim函数,该函数仅适用于字符串的开头和结尾,但允许指定任何字符串;以及Ken Puls对它的改编,它增加了工作表函数TRIM功能,用一个单独的字符串替换字符串中的顺序“字符”。

以上是关于如何从单元格中删除换行符,但将地址格式保留在同一单元格VBA中的主要内容,如果未能解决你的问题,请参考以下文章

将 HTML 表格粘贴到 Excel 中,如何在单元格中保留换行符

从熊猫数据框单元格中的凌乱字符串中删除换行符?

从 git 分支中删除文件但将其保留在另一个?

如何删除表格视图单元格中单选按钮的索引路径?

EXCEL中如何输入文字且文字不换行

从存储库中删除文件但将其保留在本地