如何删除无效字符,如&;nbsp在Excel中从我的CSV中删除,而不使用任何其他编程环境
我有一个CSV文件,但我被告知它包含无效字符(等等)。如何在Excel中清理它?这是假设您没有任何其他编程工具,只有Mac或Windows计算机上的Excel。其目的是转换CSV文件,使其不包含这些非法字符。一种解决方案是使用此宏(根据需要调整单元格范围):如何删除无效字符,如&;nbsp在Excel中从我的CSV中删除,而不使用任何其他编程环境,excel,vba,csv,text,Excel,Vba,Csv,Text,我有一个CSV文件,但我被告知它包含无效字符(等等)。如何在Excel中清理它?这是假设您没有任何其他编程工具,只有Mac或Windows计算机上的Excel。其目的是转换CSV文件,使其不包含这些非法字符。一种解决方案是使用此宏(根据需要调整单元格范围): 因为它是一个CSV文件,所以没有理由不就地修改该文件。如果你只是想把它作为另一个过程的输入,那么将其加载到Excel中可能是个坏主意,因为你会遇到本地化、数字自动转换、小数转换为科学符号等问题 这要好得多(而且速度非常快——一个20MB的测
因为它是一个CSV文件,所以没有理由不就地修改该文件。如果你只是想把它作为另一个过程的输入,那么将其加载到Excel中可能是个坏主意,因为你会遇到本地化、数字自动转换、小数转换为科学符号等问题 这要好得多(而且速度非常快——一个20MB的测试文件只需不到一秒钟): 请注意,您需要添加对MS脚本运行时和MS VBScript正则表达式的引用,或者更改为后期绑定 这样称呼:
ScrubCsv "C:\some.csv"
其中一种方法是使用宏。答案部分的代码如下所示。欢迎更多的方法。请分享。这将有助于在这里添加更多的上下文。您是如何生成该文件的?它的用途是什么?您发布该问题只是为了能够立即发布代码吗?这有什么作用?@teylyn-谢谢,目的确实是通过发布我自己的方法来帮助社区,并希望有更好或更短的宏。@teylyn,事实上,发布和回答你自己的问题没有什么错。请参阅。很抱歉提出一个问题:请您分享运行您的代码类型所需的工具好吗?@SuhailHalai-在VB编辑器中:工具->引用…,然后选中“Microsoft脚本运行时”和“Microsoft VBScript正则表达式x.x”框。感谢您的澄清!供其他人参考,在Excel For Mac中,它位于“菜单>工具>宏>Visual Basic编辑器”中
Private Sub ScrubCsv(filepath As String)
Dim fso As FileSystemObject
Set fso = New FileSystemObject
Dim buffer As String
With fso.OpenTextFile(filepath)
buffer = .ReadAll
.Close
End With
With New RegExp
.Pattern = "[^ -~\n\r]" 'All printable chars, plus CR and LF
.Global = True
.MultiLine = True
buffer = .Replace(buffer, vbNullString)
End With
With fso.CreateTextFile(filepath)
.Write buffer
.Close
End With
End Sub
ScrubCsv "C:\some.csv"