1

我有以下格式的单元格:

键:值|键 1:值 1|键 2:值 2|等...

每个单元格中的键数从 0 到 10 不等。

我需要将该单元格转换为一个简单的 HTML 表格,例如:

    <table>
        <tr>
            <td>Key</td>
            <td>Value</td>
        </tr>
        <tr>
            <td>Key1</td>
            <td>Value2</td>
        </tr>
        ... etc
    </table>

这是否可以使用计算,还是我需要查看宏?乍一看,我没有看到任何设计用于使用分隔符拆分字符串的函数,所以看起来在计算中会非常麻烦,如果不是不可能的话。如果可行的话,最好进行计算。

4

1 回答 1

0

我确信它可以在一个有很多帮助列的公式中完成,但它会是多么的一团糟。这里有一些 VBA 可以做你想做的。

Public Function KeyValueToHtml(ByVal sKeyValue As String) As String

    Dim vaPipe As Variant
    Dim vaColon As Variant
    Dim i As Long
    Dim aReturn() As String

    vaPipe = Split(sKeyValue, "|")
    ReDim aReturn(LBound(vaPipe) To UBound(vaPipe))

    For i = LBound(vaPipe) To UBound(vaPipe)
        vaColon = Split(vaPipe(i), ":")
        aReturn(i) = Tag(Tag(vaColon(0), "td") & vbNewLine & Tag(vaColon(1), "td"), "tr", , True)
    Next i

    KeyValueToHtml = Tag(Join(aReturn, vbNewLine), "table", , True)

End Function

Function Tag(ByVal sValue As String, ByVal sTag As String, _
    Optional ByVal sAttr As String = "", Optional ByVal bIndent As Boolean = False) As String

    Dim sReturn As String

    If Len(sAttr) > 0 Then
        sAttr = Space(1) & sAttr
    End If

    If bIndent Then
        sValue = vbTab & Replace(sValue, vbNewLine, vbNewLine & vbTab)
        sReturn = "<" & sTag & sAttr & ">" & vbNewLine & sValue & vbNewLine & "</" & sTag & ">"
    Else
        sReturn = "<" & sTag & sAttr & ">" & sValue & "</" & sTag & ">"
    End If

    Tag = sReturn

End Function
于 2013-10-04T23:36:28.317 回答