问与答96:如何使用VBA代码提取单元格中的字符串

2021-03-12 16:52:33 浏览数 (1)

excelperfect

Q:如何在指定单元格中根据条件查找内容,并将找到的内容输入到相邻单元格中?

例如,在单元格A1中的内容为“This is<just> a test”,单词“just”位于一对尖括号中。现在想要将“just”提取出来,并将其放置在相邻的单元格B1中,如何使用VBA代码来实现这样的操作?

A:可以使用VBA中的InStr函数来查找左尖括号“<”和右尖括号“>”的位置,然后使用Mid函数来提取尖括号之间的内容。当然,可以使代码更简单一些,使用Like运算符和Split函数。下面分别给出这两段VBA代码。

代码1:

代码语言:javascript复制
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

代码2:

代码语言:javascript复制
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

注意,上述代码假设要提取字符的单元格处于以单元格A1开始的列A中,提取后的字符放置在相邻的列B中对应的单元格中。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

vba

0 人点赞