Vba 如何使用VB或公式从excel单元格中删除换行符?
我有许多单元格,其中数据被分成许多行;有些行是空白的。是否有VB函数或公式来删除Excel单元格中的空行符或所有换行符?在单元格中替换换行符似乎有效-Vba 如何使用VB或公式从excel单元格中删除换行符?,vba,excel,Vba,Excel,我有许多单元格,其中数据被分成许多行;有些行是空白的。是否有VB函数或公式来删除Excel单元格中的空行符或所有换行符?在单元格中替换换行符似乎有效-=Substitute(A1,CHAR(10),”)在单元格中替换换行符似乎有效-=Substitute(A1,CHAR(10),”)如果不需要公式- 在数据右侧立即添加一个新列(触摸最后一列)。 在此列中插入数据最后一行的数字1、2、3等,指示数据的原始顺序 对除此新列之外的任何字段上的数据进行排序。 所有空白行将被排序到数据的顶部或底部。 删除
=Substitute(A1,CHAR(10),”)
在单元格中替换换行符似乎有效-=Substitute(A1,CHAR(10),”)
如果不需要公式-
在数据右侧立即添加一个新列(触摸最后一列)。
在此列中插入数据最后一行的数字1、2、3等,指示数据的原始顺序
对除此新列之外的任何字段上的数据进行排序。
所有空白行将被排序到数据的顶部或底部。
删除所有连续的空行。
对添加的列进行排序以保留原始数据行顺序。
删除您添加的列。如果不需要公式- 在数据右侧立即添加一个新列(触摸最后一列)。 在此列中插入数据最后一行的数字1、2、3等,指示数据的原始顺序 对除此新列之外的任何字段上的数据进行排序。 所有空白行将被排序到数据的顶部或底部。 删除所有连续的空行。 对添加的列进行排序以保留原始数据行顺序。
删除你添加的专栏。我知道这篇文章很旧,但我找不到任何可以这样做的东西。因此,我最终将所有论坛中的信息汇总在一起 选择“单元格”或“范围”,这将删除左侧和右侧的所有换行符,并删除所有空行。然后把它修剪得好看。按你认为合适的方式改变。如果有兴趣,我还制作了一个删除所有换行符的程序。泰
Sub RemoveBlankLines()
Application.ScreenUpdating = False
Dim rngCel As Range
Dim strOldVal As String
Dim strNewVal As String
For Each rngCel In Selection
If rngCel.HasFormula = False Then
strOldVal = rngCel.Value
strNewVal = strOldVal
Debug.Print rngCel.Address
Do
If Left(strNewVal, 1) = vbLf Then strNewVal = Right(strNewVal, Len(strNewVal) - 1)
If strNewVal = strOldVal Then Exit Do
strOldVal = strNewVal
Loop
Do
If Right(strNewVal, 1) = vbLf Then strNewVal = Left(strNewVal, Len(strNewVal) - 1)
If strNewVal = strOldVal Then Exit Do
strOldVal = strNewVal
Loop
Do
strNewVal = Replace(strNewVal, vbLf & vbLf, "^")
strNewVal = Replace(strNewVal, Replace(String(Len(strNewVal) - _
Len(Replace(strNewVal, "^", "")), "^"), "^", "^"), "^")
strNewVal = Replace(strNewVal, "^", vbLf)
If strNewVal = strOldVal Then Exit Do
strOldVal = strNewVal
Loop
If rngCel.Value <> strNewVal Then
rngCel = strNewVal
End If
rngCel.Value = Application.Trim(rngCel.Value)
End If
Next rngCel
Application.ScreenUpdating = True
End Sub
子删除空白行()
Application.ScreenUpdating=False
变暗rngCel As范围
Dim strOldVal作为字符串
作为字符串的Dim strNewVal
对于选择中的每个rngCel
如果rngCel.HasFormula=False,则
strOldVal=rngCel.值
strNewVal=strOldVal
调试.打印rngCel.地址
做
如果左(strNewVal,1)=vbLf,则strNewVal=右(strNewVal,Len(strNewVal)-1)
如果strNewVal=strOldVal,则退出Do
strOldVal=strNewVal
环
做
如果Right(strNewVal,1)=vbLf,则strNewVal=Left(strNewVal,Len(strNewVal)-1)
如果strNewVal=strOldVal,则退出Do
strOldVal=strNewVal
环
做
strNewVal=替换(strNewVal、vbLf和vbLf,“^”)
strNewVal=Replace(strNewVal,Replace)(字符串)_
Len(替换(strNewVal,“^”、“)、“^”)、“^”、“^”、“^”)、“^”)
strNewVal=替换(strNewVal,“^”,vbLf)
如果strNewVal=strOldVal,则退出Do
strOldVal=strNewVal
环
如果rngCel.值strNewVal,则
rngCel=strNewVal
如果结束
rngCel.Value=Application.Trim(rngCel.Value)
如果结束
下一个rngCel
Application.ScreenUpdating=True
端接头
如果你只是想让所有的换行符消失,就用这个
Sub RemoveLineBreaks()
Application.ScreenUpdating = False
Dim rngCel As Range
Dim strOldVal As String
Dim strNewVal As String
For Each rngCel In Selection
If rngCel.HasFormula = False Then
strOldVal = rngCel.Value
strNewVal = strOldVal
Debug.Print rngCel.Address
Do
strNewVal = Replace(strNewVal, vbLf, " ")
If strNewVal = strOldVal Then Exit Do
strOldVal = strNewVal
Loop
If rngCel.Value <> strNewVal Then
rngCel = strNewVal
End If
End If
rngCel.Value = Application.Trim(rngCel.Value)
Next rngCel
Application.ScreenUpdating = True
End Sub
Sub-RemoveLineBreaks()
Application.ScreenUpdating=False
变暗rngCel As范围
Dim strOldVal作为字符串
作为字符串的Dim strNewVal
对于选择中的每个rngCel
如果rngCel.HasFormula=False,则
strOldVal=rngCel.值
strNewVal=strOldVal
调试.打印rngCel.地址
做
strNewVal=替换(strNewVal,vbLf,“”)
如果strNewVal=strOldVal,则退出Do
strOldVal=strNewVal
环
如果rngCel.值strNewVal,则
rngCel=strNewVal
如果结束
如果结束
rngCel.Value=Application.Trim(rngCel.Value)
下一个rngCel
Application.ScreenUpdating=True
端接头
我知道这篇文章很旧,但我找不到任何可以这样做的东西。因此,我最终将所有论坛中的信息汇总在一起
选择“单元格”或“范围”,这将删除左侧和右侧的所有换行符,并删除所有空行。然后把它修剪得好看。按你认为合适的方式改变。如果有兴趣,我还制作了一个删除所有换行符的程序。泰
Sub RemoveBlankLines()
Application.ScreenUpdating = False
Dim rngCel As Range
Dim strOldVal As String
Dim strNewVal As String
For Each rngCel In Selection
If rngCel.HasFormula = False Then
strOldVal = rngCel.Value
strNewVal = strOldVal
Debug.Print rngCel.Address
Do
If Left(strNewVal, 1) = vbLf Then strNewVal = Right(strNewVal, Len(strNewVal) - 1)
If strNewVal = strOldVal Then Exit Do
strOldVal = strNewVal
Loop
Do
If Right(strNewVal, 1) = vbLf Then strNewVal = Left(strNewVal, Len(strNewVal) - 1)
If strNewVal = strOldVal Then Exit Do
strOldVal = strNewVal
Loop
Do
strNewVal = Replace(strNewVal, vbLf & vbLf, "^")
strNewVal = Replace(strNewVal, Replace(String(Len(strNewVal) - _
Len(Replace(strNewVal, "^", "")), "^"), "^", "^"), "^")
strNewVal = Replace(strNewVal, "^", vbLf)
If strNewVal = strOldVal Then Exit Do
strOldVal = strNewVal
Loop
If rngCel.Value <> strNewVal Then
rngCel = strNewVal
End If
rngCel.Value = Application.Trim(rngCel.Value)
End If
Next rngCel
Application.ScreenUpdating = True
End Sub
子删除空白行()
Application.ScreenUpdating=False
变暗rngCel As范围
Dim strOldVal作为字符串
作为字符串的Dim strNewVal
对于选择中的每个rngCel
如果rngCel.HasFormula=False,则
strOldVal=rngCel.值
strNewVal=strOldVal
调试.打印rngCel.地址
做
如果左(strNewVal,1)=vbLf,则strNewVal=右(strNewVal,Len(strNewVal)-1)
如果strNewVal=strOldVal,则退出Do
strOldVal=strNewVal
环
做
如果Right(strNewVal,1)=vbLf,则strNewVal=Left(strNewVal,Len(strNewVal)-1)
如果strNewVal=strOldVal,则退出Do
strOldVal=strNewVal
环
做
strNewVal=替换(strNewVal、vbLf和vbLf,“^”)
strNewVal=Replace(strNewVal,Replace)(字符串)_
Len(替换(strNewVal,“^”、“)、“^”)、“^”、“^”、“^”)、“^”)
strNewVal=替换(strNewVal,“^”,vbLf)
如果strNewVal=strOldVal,则退出Do
strOldVal=strNewVal
环
如果rngCel.值strNewVal,则
rngCel=strNewVal
如果结束
rngCel.Value=Application.Trim(rngCel.Value)
如果结束
下一个rngCel
Application.ScreenUpdating=True
端接头
如果你只是想让所有的换行符消失,就用这个
Sub RemoveLineBreaks()
Application.ScreenUpdating = False
Dim rngCel As Range
Dim strOldVal As String
Dim strNewVal As String
For Each rngCel In Selection
If rngCel.HasFormula = False Then
strOldVal = rngCel.Value
strNewVal = strOldVal
Debug.Print rngCel.Address
Do
strNewVal = Replace(strNewVal, vbLf, " ")
If strNewVal = strOldVal Then Exit Do
strOldVal = strNewVal
Loop
If rngCel.Value <> strNewVal Then
rngCel = strNewVal
End If
End If
rngCel.Value = Application.Trim(rngCel.Value)
Next rngCel
Application.ScreenUpdating = True
End Sub
Sub-RemoveLineBreaks()
Application.ScreenUpdating=False
变暗rngCel As范围
暗淡的