使用VBA提取单元格中的字符串

问题:如何按照条件查找所给单元格中的内容,并将找到的内容放在相邻单元格中?
例如,单元格A1中的内容为“This is a test”,单词“just”在一对尖括号中。现在想将“just”提取出来,并将其放置在相邻的单元格B1中,如何使用VBA代码来实现这样的操作?
分析:可以使用InStr函数来查找左尖括号“<”和右尖括号“>”的位置,然后使用Mid函数来提取尖括号之间的内容。当然,可以更简单一些,使用Like运算符和Split函数。
代码一:
Sub CopyAndDepositTextWithinBrackets1()
    On Error Resume Next
    Dim rngCell As Range
    Dim strName As String
    Dim OpenBracket As Integer
    Dim CloseBracket As Integer
    For Each rngCell In Range(”A1″, Range(”A1″).End(xlDown))
        strName = rngCell.Value
        OpenBracket = InStr(1, strName, “<”)
        CloseBracket = InStr(1, strName, “>”)
        rngCell.Offset(0, 1).Value = Mid(strName, _
            OpenBracket + 1, CloseBracket - OpenBracket - 1)
    Next rngCell
End Sub

代码二:
Sub CopyAndDepositTextWithinBrackets2()
    Dim rng As Range
    For Each rng In Range(”A1″, “A” & Range(”A1″).SpecialCells(xlLastCell).Row)
        If rng Like “*<*>*” Then rng.Offset(, 1).Value = _
           Split(Split(rng, Chr(60))(1), Chr(62))(0)
    Next rng
End Sub


提示:您可以在评论中使用HTML标签,且任何与HTML标签相同的符号都会被理解为HTML标签并以相应的格式显示.如果您的评论中有代码,可以使用相应的标签,例如,如果有VB或VBA代码,则可以使用[vb]标签,即[vb]放置的代码[/vb],这样会很清晰地显示代码.

1条评论

  1. fecmen:

    很不错啊!我以前就没见过这么处理啊。学习了!顶一下!

发表评论