Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 将单个单元格的HTML标记和文本拆分为多行_Excel_Vba_Split - Fatal编程技术网

Excel 将单个单元格的HTML标记和文本拆分为多行

Excel 将单个单元格的HTML标记和文本拆分为多行,excel,vba,split,Excel,Vba,Split,我正在尝试使用一个函数,将几个选定单元格的每个HTML标记和文本字符串返回到新工作表的各个行中,这样我就可以编辑文本行,然后将所有内容粘贴回选定单元格 我有这个代码,但不幸的是,它对于我的任务来说太基本了 Sub SplitCell () Dim txt As String Dim i As Integer Dim fullname As Variant txt = ActiveCell.Value fullname = Split(txt, "<

我正在尝试使用一个函数,将几个选定单元格的每个HTML标记和文本字符串返回到新工作表的各个行中,这样我就可以编辑文本行,然后将所有内容粘贴回选定单元格

我有这个代码,但不幸的是,它对于我的任务来说太基本了

Sub SplitCell ()
    Dim txt As String
    Dim i As Integer
    Dim fullname As Variant

    txt = ActiveCell.Value
    fullname = Split(txt, "<p>; <b>; <i>; </p>; </b>; </i>;")
        For i = 0 To UBound(fullname)
        Cells(1, i + 1).Value = fullname(i)
    Next i
End Sub
子拆分单元()
以字符串形式显示文本
作为整数的Dim i
Dim fullname作为变量
txt=ActiveCell.Value
全名=拆分(txt,“;;”;

;;;”) 对于i=0到UBound(全名) 单元格(1,i+1)。值=全名(i) 接下来我 端接头
这里有一个指向示例工作表的链接,让您更好地了解我想要实现的目标

样本表

预期结果


谢谢,

将根据结果的
进行拆分,类似这样

Sub test()

    Dim s As String
    Dim s1() As String
    Dim v As Variant

    s = "<td>test one</td><b>test two</b>"

    s1 = Split(s, "<")

    For Each v In s1        
        If Len(v) > 0 And Right(v, 1) <> ">" Then        
            Debug.Print Split(v, ">")(1)        
        End If        
    Next v        

End Sub

子测试()
像线一样变暗
Dim s1()作为字符串
Dim v作为变体
s=“测试一测试二”
s1=拆分,然后
调试。打印拆分(v“>”)(1)
如果结束
下一个v
端接头

将根据结果的
进行拆分,类似这样

Sub test()

    Dim s As String
    Dim s1() As String
    Dim v As Variant

    s = "<td>test one</td><b>test two</b>"

    s1 = Split(s, "<")

    For Each v In s1        
        If Len(v) > 0 And Right(v, 1) <> ">" Then        
            Debug.Print Split(v, ">")(1)        
        End If        
    Next v        

End Sub

子测试()
像线一样变暗
Dim s1()作为字符串
Dim v作为变体
s=“测试一测试二”
s1=拆分,然后
调试。打印拆分(v“>”)(1)
如果结束
下一个v
端接头

发生了什么不正确的事情?如果你正在寻找任何基本的,你可以做一个从
i=1到len()的循环。
当你找到所需的分割点时,从最后一个分割点到当前的i,并将其附加到一个预先标注的数组中。application.transpose数组回到你的工作表中(可能需要将数组重排到最大内容)。嘿,Nathan,谢谢你的回答。好吧,我的代码只是根据几个有限的标记分割选定的单元格,我需要它与任何HTML标记一起工作(因此,<和>)之间的任何内容。此外,我希望它能够在报告表中实际列出这些标记,就像所有剩余的文本一样,而不是像函数那样删除它们。我已经包含了一个链接,其中包含了一个我想实现的示例文件。Thanks@Marrone在少数情况下,任何人都会从本网站下载链接。请编辑您的帖子,或提供scr甚至是数据快照或摘录。谢谢Cyril,我刚刚编辑了我的帖子。:)发生了什么不对的事?如果你在寻找任何基本的,你可以做一个从
I=1到len()的循环
找到所需的拆分点后,从最后一个拆分点提取到当前i,并将其附加到预先标注的数组中。应用程序。将数组转换回工作表(可能需要将数组重新划分为最大内容).嘿,Nathan,谢谢你的回答。我的代码只是根据几个有限的标记分割选定的单元格,我需要它与任何HTML标记一起工作(因此,<和>)之间的任何内容。此外,我希望它能够在报告表中实际列出这些标记,就像所有剩余的文本一样,而不是像函数那样删除它们。我已经包含了一个链接,其中包含了一个我想实现的示例文件。Thanks@Marrone在少数情况下,任何人都会从本网站下载链接。请编辑您的帖子,或提供scr甚至是数据快照或摘录。谢谢Cyril,我刚刚编辑了我的帖子。:)删除了我的答案,因为这将简化
split(s)的使用,“这只是一个基本的方法,不确定它在嵌套上如何工作,比如
test
删除了我的答案,因为这将简化
split(s)的使用。”这只是一个基本的方法,不确定它将如何在嵌套(比如
test