我有一张 Excel 工作表,其中的单元格具有不同数量的换行符,我想减少它,以便每个新行之间只有一个换行符。
例如
HELLO
WORLD
GOODBYE
将修改为:
HELLO
WORLD
GOODBYE
我已经为此绞尽脑汁好几个小时了,并想出了一些方法,但没有一种方法非常有效或能产生最佳结果。
这变得特别困难,因为我正在处理的数据集在换行符之前有空格。
所以常规解析不起作用。
我尝试替换所有实例chr(10)
在细胞中~
为了使其更容易使用,但我仍然没有得到确切的数量。我想知道是否有更好的方法。
这是我到目前为止所拥有的:
myString = Replace(myString, Chr(10), "~")
Do While InStr(myString, "~~") > 0
str1 = Split(myString, "~")
For k = 0 To UBound(str1)
myString = Replace(myString, "~~", "~")
Next k
Loop
Do While InStr(myString, " ~") > 0
str1 = Split(myString, "~")
For k = 0 To UBound(str1)
myString = Replace(myString, " ~", "")
Next k
Loop
myString = Replace(myString, " ~", " ~")
myString = Replace(myString, " ~", "~")
myString = Replace(myString, "~", Chr(10))
Cells(2, 2).Value = myString
因此,我使用一些 do while 循环来捕获不同类型的换行符(或在本例中为波形符)的实例,但我认为这不是解决此问题的最佳方法。
我正在考虑循环遍历单元格中的字符的方法,如果存在一个以上 chr(10) 的实例,请将其替换为""
.
所以伪代码看起来像:
for i to len(mystring)
if mystring(i) = chr(10) AND myString(i+1) = chr(10) Then
myString(i + 1) = ""
但不幸的是我认为这不可能通过 vba 实现。
如果有人好心帮助我调整当前的代码或帮助我处理上述伪代码,我将不胜感激!