EXCEL 用VBA 提取字符串

单元格 A1 中 有很长的内容
其中有这么两句
..............
<a target="_blank" href="/football/team.do?action=schedule&leagueBaseId=75&teamBaseId=917&menuId=1">

<a target="_blank" href="/football/team.do?action=schedule&leagueBaseId=75&teamBaseId=779&menuId=1">
..............
我想提取 四个数值
leagueBaseId=75 的 75
teamBaseId=917 的 917
leagueBaseId=75 的 75
teamBaseId=779 的 779
到单元格 A2 A3 A4 A5中
怎么样用VBA写个循环 把A列的 内容 都提取出来呢

可以使用函数提取一个字符串中的一段字符。

MID 用来返回文本字符串中从指定位置开始的特定数目的字符,该数目由用户指定。
函数 MID 始终将每个字符(不管是单字节还是双字节)按 1 计数。

语法:
MID(text, start_num, num_chars)
参数:
MID函数语法具有下列参数:
Text 必需。包含要提取字符的文本字符串。
Start_num 必需。文本中要提取的第一个字符的位置。文本中第一个字符的 start_num 为 1,依此类推。
Num_chars 必需。指定希望 MID 从文本中返回字符的个数。

说明:

如果 start_num 大于文本长度,则 MID 返回空文本 ("")。
如果 start_num 小于文本长度,但 start_num 加上 num_chars 超过了文本的长度,则 MID 只返回至多直到文本末尾的字符。
如果 start_num 小于 1,则 MID 返回错误值 #VALUE!。
如果 num_chars 是负数,则 MID 返回错误值 #VALUE!。
如果 num_bytes 是负数,则 MIDB 返回错误值 #VALUE!。

示例:
数据 "Fluid Flow " 假设在A1单元格。
=MID(A2,1,5) 上面字符串中的 5 个字符,从第一个字符开始 (Fluid) 。
=MID(A2,7,20) 上面字符串中的 20 个字符,从第七个字符开始 (Flow) 。
=MID(A2,20,5) 因为要提取的第一个字符的位置大于字符串的长度,所以返回空文本 ()。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-07-10
直接用EXCEL里面的“分列”就可以了,因为都有一个“=”。
或是用函数解决,mid(a1,find("=",a1)+1,,len(a1)-find("=",a1)
如果用VBA的,
mid(cells(1,1).value,instr(“=”,cells(1,1).value)+1,len(cells(1,1).value)-instr(“=",cells(1,1).value))
就可以了,好久不用VBA了,有点记不清instr(cells(1,1).value)要不要value本回答被网友采纳
第2个回答  2012-07-10
Sub test()
Dim t As String, i As Integer, a
t = Cells(1, 1).Value
a = Split(t, "BaseId=")
For i = 1 To UBound(a)
Cells(i + 1, 1) = Split(a(i), "&")(0)
Next
End Sub本回答被提问者采纳
第3个回答  2012-07-10
切图,需要看看A列数据的规律性。如果没有规律是没发循环提取的
相似回答