excel 需要将&lt;Pipe+NewLine+Pipe&gt;转换为< Pipe>,失败

5lhxktic  于 2023-06-25  发布在  其他
关注(0)|答案(1)|浏览(111)

我在分析一些垃圾数据。有时用户使用管道字符进行分隔。其他时候,他们用一个管道,一个回车+换行和另一个管道来划界。
我不想在没有首先确定它们在哪里的情况下就清理掉所有的新行。为了协调数据,我需要将pipe-crlf-pipe转换为单个管道。只要把它们拔出来,就会产生“||这是一个问题,因为当使用单个管道分隔符时,管道-管道表示一个空白字段,我们需要保留该字段。
示例:

|FieldA|FieldB|FieldC|

or

|FieldA|
|FieldB|
|FieldC|

数据是如何格式化的。
对于这种不一致性,我除了处理它之外无能为力。
尽管有这段代码,我还是在运行文本字符串……

myData = Replace(myData, "|"+vbCrLf+"|", "|")
myData = Replace(myData, Chr(124)+vbCrLf+Chr(124), Chr(124))
myData = Replace(myData, Chr(124)+Chr(13)+Chr(10)+Chr(124), Chr(124))
myData = Replace(myData, Chr(124)+Chr(10)+Chr(13)+Chr(124), Chr(124))
myData = Replace(myData, "|"+Chr(13)+Chr(10)+"|", "|")
myData = Replace(myData, "|"+Chr(10)+Chr(13)+"|", "|")

他们仍然通过。我尝试了正则表达式,但它似乎也不起作用。
我只是无法获得将Pipe+NewLine+Pipe的任何示例转换为Pipe的代码。
我拉到十六进制编辑器的数据,以确保它不是一些其他字符有时它只是0A换行,但大多数…是7 C 0 D 0A 7 C

inb24sb2

inb24sb21#

蒂姆·威廉姆斯其实有一个很好的方法。首先将所有换行符规范化为vblf,然后替换vblf。
不知道为什么它起作用了,但它起作用了!

相关问题