macros将Excel单元格中的粗体文本转换为强标记

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

我收到了几张Excel表格,所有这些表格都包含了大量不同语言的翻译。 尽pipe我已经使用这样的工作表来生成SQL语句,但是这次由于需要保留的格式不同而不同。

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

回答

我在工作表中添加了一个新的macrosfunction。 我为此创build了一个模块,并将该函数添加到模块中。 这使我可以在公式中间使用熟悉的Excel函数表示法来调用它。

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

以下function是我想出来的:

 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上的函数,我将input到所需的单元格中:

=AddStrongTags(A2)

这将产生没有粗体格式的文本,但添加了<strong>标签。

该函数返回一个string,所以它可以用来连接到我的SQL语句。 例如,下面是使用新函数创build一个SQL语句的简单示例,我将input一个空单元格:

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