excelperfect
Q:如何在指定单元格中根据条件查找内容,并将找到的内容输入到相邻单元格中?
例如,在单元格A1中的内容为“This is<just> a test”,单词“just”位于一对尖括号中。现在想要将“just”提取出来,并将其放置在相邻的单元格B1中,如何使用VBA代码来实现这样的操作?
A:可以使用VBA中的InStr函数来查找左尖括号“<”和右尖括号“>”的位置,然后使用Mid函数来提取尖括号之间的内容。当然,可以使代码更简单一些,使用Like运算符和Split函数。下面分别给出这两段VBA代码。
代码1:
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:
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中对应的单元格中。
欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。