无法正确find/replace
我有一个CSV文件,我试图从中删除HTML标签,并且所有行都返回。
使用<*>
执行查找/replace操作会返回“此公式存在问题”错误。
尝试\<*>
得到错误“我们找不到任何要replace的东西”。
尝试这个VBA什么都不做 – 它运行成功,但所有的标签仍然存在:
Sub t() With Range("A1:AE60165") .Replace Chr(10), " " .Replace Chr(13), " " .Replace vbCr, " " .Replace vbLf, " " .Replace vbCrLf, " " .Replace "<*>", "" End With End Sub
该macros也不会删除任何换行符或回车符。 用Char!10)
或Char(13)
做一个查找/replace也不会做任何事情。
我试过的最后一件事是Worksheetfunction.Clean(Range("A1"))
,它也什么都不做。 但如果在A2
,我使用=CLEAN(A1)
,它成功地删除了换行符。 尽pipe数据集非常大,但是我不能在所有的单元格上这样做。
我甚至无法从所有单元格中成功删除@
。 我刚刚运行它,它删除了23个实例,但即使我select的单元格有一个@
但没有被删除。
我怀疑这是CSV的东西,因为我不知道它为什么如此复杂。 这是一个很多的数据,所以一个函数不可能是最好的select。
这可能是一些Unicodetypes的问题?
编辑:FWIW,我使用profiles.csv
在这里find,因为我学习Python它只是玩弄。 这里有一个pastebin链接到less量的数据,但我不知道它在该网站“翻译”有多好。
尝试使用记事本+ +这一点,它会容易得多,或者你可以在SQL中导入CSV并在那里做replace
下面你会find一个函数调用来说明这个过程。 你应该在循环中进行这些调用,最好是在一个数组循环中,然后写回结果以提高性能。
示例调用
Sub test_RemoveHTML() Dim s As String: s = "<b>xxx</b><div />" MsgBox RemoveHTML(s) End Sub
助手function
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
- VBA从RegEx.Execute获取唯一值
- Pentaho Filter正则expression式Excelinput
- Excel 2007中的VBAmacros。我想在Excel VBA中使用正则expression式来将“他”replace为“她”,“他”replace为“她”,“他”replace为“她”
- 使用正则expression式将excel公式转换成wolfram mathematica
- 在Excel中的单元格中着色部分文本
- 删除相似的行
- 使用Javascript中的正则expression式来匹配Excel中SUM函数的格式
- EXCEL中有哪些function是与数字分开的文本?
- 正则expression式validation代码为Excelfile uploadjQuery