我有一个CSV文件,我试图从中删除HTML代码,并返回所有行。
使用<*>
进行查找/替换会返回&#34;此公式存在问题&#34;错误。
尝试\<*>
会收到错误&#34;我们无法找到要替换的内容。&#34;
尝试此VBA也无效 - 它运行成功,但所有标签仍然存在:
Sub t()
With Range("A1:AE60165")
.Replace Chr(10), " "
.Replace Chr(13), " "
.Replace vbCr, " "
.Replace vbLf, " "
.Replace vbCrLf, " "
.Replace "<*>", ""
End With
End Sub
该宏也不删除任何换行符或回车符。使用Char!10)
或Char(13)
进行查找/替换也不会做任何事情。
我尝试的最后一件事是Worksheetfunction.Clean(Range("A1"))
,它也什么也没做。 但如果在A2
中,我使用=CLEAN(A1)
,则会成功删除换行符。我不能在所有细胞上做到这一点,因为数据集非常大。
我甚至无法从所有单元格中成功删除@
。我刚刚运行它,它删除了23个实例,但即使我选择的单元格也有@
但还没有删除。
我怀疑它与CSV有关,因为我不知道它为何如此复杂。这是一个很多数据,所以功能可能不是最好的选择。
可能是某些Unicode类型问题吗?
编辑:FWIW,我正在使用profiles.csv
找到here,因为我学习Python只是为了解决这个问题。 Here's a pastebin链接到少量数据,但我不确定它的翻译效果如何?#34;}&#34;}在该网站上。
答案 0 :(得分:1)
尝试使用notepad ++,它会更容易,或者您可以在SQL中导入CSV并在那里进行替换
答案 1 :(得分:0)
下面你会找到一个函数调用来说明这个过程。您应该处于循环中进行这些调用的位置,最好是在数组循环中并在之后写回结果以提高性能。
示例电话
Sub test_RemoveHTML()
Dim s As String: s = "<b>xxx</b><div />"
MsgBox RemoveHTML(s)
End Sub
辅助功能
Function RemoveHTML(s As String) As String
' Purpose: remove HTML tags and comments from string via regular expression
On Error GoTo oops
Dim oRegEx As Object ' Late Binding
Set oRegEx = CreateObject("vbscript.regexp")
With oRegEx
'.Pattern = "<[^>]+>" 'basic html pattern
.pattern = "<!*[^<>]*>" 'html tags and comments
.Global = True
.IgnoreCase = True
.MultiLine = True
End With
RemoveHTML = oRegEx.Replace(s, "")
leaveFunction:
On Error Resume Next
Set oRegEx = Nothing ' clear memory
Exit Function
oops:
MsgBox "Error No " & Err.Number & " " & Err.Description, _
vbExclamation, "RemoveHTML"
Resume leaveFunction
End Function