前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >问与答96:如何使用VBA代码提取单元格中的字符串

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

作者头像
fanjy
发布2021-03-12 16:52:33
4.7K0
发布2021-03-12 16:52:33
举报
文章被收录于专栏:完美Excel完美Excel

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中对应的单元格中。

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-02-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档