excel中用VBA提取某一个单元格内包含某关键字符串的一行内容前的整数。

图片中是exce中一个单元格A1中多行的数据,需要在另外一个单元格bB1中输入关键字,比如215/70R16,会得到图片中对应行的35=215/70R16前面的35。... 图片中是exce中一个单元格A1中多行的数据,需要在另外一个单元格bB1中输入关键字,比如215/70 R16,会得到图片中对应行的35 = 215/70 R16前面的35。 展开
 我来答
mzz9060
2018-07-03 · TA获得超过1325个赞
知道小有建树答主
回答量:773
采纳率:84%
帮助的人:195万
展开全部

答:右键工作表标签,选择查看代码,复制下面代码进去。然后可以在B列输入关键字,就会得到结果。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Cell As Range
    Dim TempStr As String
    On Error Resume Next
    If Target.Column = 2 Then
        Set Cell = Cells(Target.Cells(1, 1).Row, "A")
        TempStr = Left(Cell, InStr(1, Cell, Target) - 1)
        Target.Offset(0, 1) = Replace(Replace(Mid(TempStr, InStrRev(TempStr, Chr(10)), Len(TempStr)), "=", ""), " ", "")
    End If
End Sub

更多追问追答
追问
不好意思,能不能够在加一个功能,就是在sheet2里某个单元格输入关键字,如215/70 R16,在sheet1里模糊检索出有关键字的单元格,然后得到这个单元格里的一行35 = 215/70 R16中的35,输出在sheet2或者sheet3里!谢谢你!
追答
说具体点吧,不然没法改。在Sheet2里哪个单元格,到Sheet1里的哪个区域里查找,最后把得到结果输出到哪个表的哪个单元格中去。
laorenjia1987
2018-07-03 · TA获得超过2765个赞
知道大有可为答主
回答量:1734
采纳率:73%
帮助的人:435万
展开全部

下面给出两种方法:

方法1. 如果会用vba的话可以考虑自定义函数:

按alt+f11唤出vbe编辑窗口,插入-模块,将下方代码贴入:

Public Function Zstr(str As String, tj As String)
    With CreateObject("Vbscript.Regexp")
        .Pattern = "^(\d+).*" & tj & ".*"
        .Global = True
        .MultiLine = True
        .ignorecase = False
        If .test(str) Then
            Set mh = .Execute(str)
            Zstr = mh(0).submatches(0)
        Else
            Zstr = CVErr(xlErrNA)
        End If
    End With
End Function

回到工作表中

在c1里输入如下公式:=zstr(A1,B1)

方法2. 公式(略长):

=--LEFT(TRIM(MID(SUBSTITUTE(A1,CHAR(10),REPT(" ",LEN(A1)+200)),MAX(1,FIND(B1,SUBSTITUTE(A1,CHAR(10),REPT(" ",LEN(A1)+200)))-200),FIND(B1,SUBSTITUTE(A1,CHAR(10),REPT(" ",LEN(A1)+200))))),FIND("=",TRIM(MID(SUBSTITUTE(A1,CHAR(10),REPT(" ",LEN(A1)+200)),MAX(1,FIND(B1,SUBSTITUTE(A1,CHAR(10),REPT(" ",LEN(A1)+200)))-200),FIND(B1,SUBSTITUTE(A1,CHAR(10),REPT(" ",LEN(A1)+200))))))-1)

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
平阳虎01
高粉答主

2018-07-03 · 每个回答都超有意思的
知道大有可为答主
回答量:3.7万
采纳率:75%
帮助的人:4943万
展开全部
也不知道现在的90后怎么搞的,让我们现在真难遇到像以上提问一样、条件和问题都描述得具体、详细的优秀的提问了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式