【问题标题】:Excel macro to convert HTML entities to textExcel 宏将 HTML 实体转换为文本
【发布时间】:2011-01-10 17:42:00
【问题描述】:

我有一个巨大的 Excel 文件,其中包含在线调查的结果。建立调查的人在几个方面弄乱了格式,而我首先需要处理的混乱是将 HTML 实体转换为常规文本。

据我所知,只使用了两个 HTML 实体,,",但文档超过 12,000 行,所以我不能确定没有使用其他 HTML 实体...如果其他 HTML 实体是使用过我也希望它们转换为文本。

我已经成功制作了一个宏来将我提到的两个 HTML 实体转换为文本,但是我不知道如何使宏在整个文件上执行(即我必须按住宏热键才能使它执行......而且它需要永远)。

如果已经有一个宏可以用来做我想做的事,那就太好了,因为我还可以使用它的修改版本来完成我的下一个任务,即按正确的顺序排列所有列和行。

更新:

这是搜索, 的宏的版本。它有效,我只需要按住永远需要的热键。如果我可以在整个 Excel 文件上运行它,那就太好了,然后我可以调整每个 HTML 实体的宏,直到我将它们全部消除。

Sub Macro2()
'
' HTML_Converter Macro
'

'
    Cells.Find(What:=",", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate
    ActiveCell.Replace What:=",", Replacement:=",", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Cells.Find(What:=",", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate
End Sub

【问题讨论】:

  • 发布你的宏代码...

标签: html excel text html-entities


【解决方案1】:

创建工作簿的备份。

Alt+F11 打开 VBA 编辑器。

在您正在使用的工作簿下方左侧的树形视图中双击“此工作簿”。

复制并粘贴以下内容:

Sub UnescapeCharacters()

    ' set this to match your case
    sheetname = "Sheet1"

    Dim sheet As Worksheet
    Set sheet = Me.Worksheets(sheetname)

    For Row = 1 To sheet.UsedRange.Rows.Count
        For Column = 1 To sheet.UsedRange.Columns.Count
            Dim cell As Range
            Set cell = sheet.Cells(Row, Column)

            ' define all your replacements here
            ReplaceCharacter cell, """, """" 'quadruple quotes required
            ReplaceCharacter cell, ",", ","
        Next Column
    Next Row

End Sub

Sub ReplaceCharacter(ByRef cell As Range, ByVal find As String, ByVal replacement As String)

    Dim result As String
    cell.Value = replace(cell.Text, find, replacement, 1, -1)

End Sub

这只是遍历指定工作表中的每个单元格并替换您定义的所有内容。提供的代码替换了您提到的两个字符代码。

您可以将其作为宏运行,或者只是将插入符号放在“UnescapeCharacters”子例程中并按 F5

【讨论】:

  • 太棒了。你说的插入符号 (^) 在哪里?
  • @typoknig 对不起,我只是说光标。您可以通过按 F5 从 VBA 编辑器运行一个子程序,它会运行您的光标所在的任何程序。我相信默认工具栏中还有一个小的“播放”按钮。
  • 啊,我明白了。我是 Excel 宏(和 VB 脚本)的新手,但它们非常强大!我对您的代码进行了一点改动,它运行良好……您只是忘记了 HTML 实体末尾的;。感谢您的帮助!
【解决方案2】:

我制作了一个具有此功能的 Excel 插件: https://www.youtube.com/watch?v=DGEc6tLaKvA

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    • 2011-07-26
    • 1970-01-01
    • 1970-01-01
    • 2021-04-21
    • 1970-01-01
    • 2011-03-02
    相关资源
    最近更新 更多