【问题标题】:Macro to convert bold text in Excel cell to strong tags将 Excel 单元格中的粗体文本转换为强标记的宏
【发布时间】:2017-05-25 15:54:09
【问题描述】:

我需要转换 Excel 工作表中的文本。如果单元格中间包含 粗体文本,我需要在其周围添加 HTML <strong> 标签。我需要这个,因为我想将文本插入数据库。

我收到了几张 Excel 表格,所有表格都包含大量不同语言的翻译。虽然我使用过这样的工作表来生成 SQL 语句,但这次不同,因为需要保留格式。

我通常只是转换文本,然后连接成 SQL 语句。但是这一次我还需要一个宏/函数来给文本添加<strong>标签:我不想手动做,因为如果原来的文本改变了,我需要手动重做修改。

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    回答

    我在工作表中添加了一个新的宏函数。我为此创建了一个模块,并将该功能添加到模块中。这让我可以在公式中间使用熟悉的 Excel 函数符号来调用它。

    1. 打开 VBA 编辑器(Alt + F11 在 Windows 上/Fn + Option + F11 在 Mac 上)
    2. 如果您还没有模块,请右键单击 VBAProject
    3. 选择插入>>模块
    4. 向模块添加代码

    以下函数是我想出的:

    Function AddStrongTags(ByVal aCell As Range) As String        
        Dim result As String
        Dim isBold As Boolean
    
        isBold = False
    
        For i = 1 To Len(aCell.Value)
            If aCell.Characters(i, 1).Font.FontStyle = "Bold" Then
                If isBold = False Then
                    result = result + "<strong>"
                    isBold = True
                End If
            Else
                If isBold = True Then
                    result = result + "</strong>"
                    isBold = False
                End If
            End If
            result = result + aCell.Characters(i, 1).Text
        Next i
    
        If isBold = True Then
            result = result + "</strong>"
        End If
    
        AddStrongTags = result
    End Function
    

    例如,要在单元格 A2 上运行该函数,我会在所需的单元格中键入:

    =AddStrongTags(A2)

    这将产生没有粗体格式但添加了&lt;strong&gt;标签的文本。

    该函数返回一个字符串,因此可用于连接到我的 SQL 语句中。例如,这里是使用新函数创建 SQL 语句的简化示例,我将在空单元格中输入该语句:

    ="INSERT INTO Foo ( lang, text ) VALUES ( 'en-GB', '" &amp; AddStrongTags(A2) &amp; "' )"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多