Private Sub Command1_Click() WebBrowser1.Document.write "<td width=""24%"" align=left>高级房</td>" MsgBox WebBrowser1.Document.body.innertextEnd SubPrivate Sub Form_Load() WebBrowser1.Navigate "about:blank" End Sub
instr len left right 组合 不过感觉你的HTML代码应该改一下。如: <td width='24%' align=left><span id='?'>高级房</span></td>code=all'all为整个网页的代码 num = len(code) - instr(code,"<td width='24%' align=left><span id='?'>") 起点 result = right(code,num) 为 高级房到网页结束 num = instr(result,"</span></td>") - 1 结束点 result = left(result,num)result 应该就是你想要的结果了吧?
Private Sub Command1_Click() Dim ss As String ss = "<td width=24% align=left>高级房</td>" MsgBox GetMsg(ss) End SubPrivate Function GetMsg(txt As String) As String Dim i As Long, ii As String Dim ist As Boolean Dim s As StringFor i = 1 To Len(txt) If Mid(txt, i, 1) = "<" Then ii = i ist = True Else
If ist = False Then s = s & Mid(txt, i, 1) End If If Mid(txt, i, 1) = ">" Then ist = False End If Next i GetMsg = s End Function
'下面代码GetMsg函数将网页所有的标签里的字符 都保存在一个字符串数组变量里面了 '而且可以过滤类似<br> 等没有结束符号的标签 Option ExplicitPrivate Function GetMsg(strHtml As String) Dim lngStart As Long, lngEnd As Long, strArryMsgs() As String, bExitDo As Boolean Dim lngCount As Long Do DoEvents lngStart = lngEnd + 1 lngStart = InStr(lngStart, strHtml, ">") If lngStart > 0 Then lngEnd = InStr(lngStart + 1, strHtml, "<") End If If lngStart > 0 And lngEnd > 0 Then If Mid(strHtml, lngEnd + 1, 1) = "/" Then ReDim Preserve strArryMsgs(lngCount) strArryMsgs(lngCount) = Mid(strHtml, lngStart + 1, lngEnd - lngStart - 1) lngCount = lngCount + 1 End If Else bExitDo = True End If Loop Until bExitDo GetMsg = strArryMsgs End FunctionPrivate Sub Command1_Click() Dim strHtml As String, strRet() As String, i As Integer strHtml = "<a scr=""http://sss.com"" >第1个</a> <br> <font>第2个</font>" strRet = GetMsg(strHtml) For i = 0 To UBound(strRet) Debug.Print strRet(i) Next End Sub
WebBrowser1.Document.write "<td width=""24%"" align=left>高级房</td>"
MsgBox WebBrowser1.Document.body.innertextEnd SubPrivate Sub Form_Load()
WebBrowser1.Navigate "about:blank"
End Sub
<td width='24%' align=left><span id='?'>高级房</span></td>code=all'all为整个网页的代码
num = len(code) - instr(code,"<td width='24%' align=left><span id='?'>") 起点
result = right(code,num) 为 高级房到网页结束
num = instr(result,"</span></td>") - 1 结束点
result = left(result,num)result 应该就是你想要的结果了吧?
Dim ss As String
ss = "<td width=24% align=left>高级房</td>"
MsgBox GetMsg(ss)
End SubPrivate Function GetMsg(txt As String) As String
Dim i As Long, ii As String
Dim ist As Boolean
Dim s As StringFor i = 1 To Len(txt)
If Mid(txt, i, 1) = "<" Then
ii = i
ist = True
Else
If ist = False Then
s = s & Mid(txt, i, 1)
End If
If Mid(txt, i, 1) = ">" Then ist = False
End If
Next i
GetMsg = s
End Function
'而且可以过滤类似<br> 等没有结束符号的标签
Option ExplicitPrivate Function GetMsg(strHtml As String)
Dim lngStart As Long, lngEnd As Long, strArryMsgs() As String, bExitDo As Boolean
Dim lngCount As Long
Do
DoEvents
lngStart = lngEnd + 1
lngStart = InStr(lngStart, strHtml, ">")
If lngStart > 0 Then
lngEnd = InStr(lngStart + 1, strHtml, "<")
End If
If lngStart > 0 And lngEnd > 0 Then
If Mid(strHtml, lngEnd + 1, 1) = "/" Then
ReDim Preserve strArryMsgs(lngCount)
strArryMsgs(lngCount) = Mid(strHtml, lngStart + 1, lngEnd - lngStart - 1)
lngCount = lngCount + 1
End If
Else
bExitDo = True
End If
Loop Until bExitDo
GetMsg = strArryMsgs
End FunctionPrivate Sub Command1_Click()
Dim strHtml As String, strRet() As String, i As Integer
strHtml = "<a scr=""http://sss.com"" >第1个</a> <br> <font>第2个</font>"
strRet = GetMsg(strHtml)
For i = 0 To UBound(strRet)
Debug.Print strRet(i)
Next
End Sub