|
本帖最后由 suye1010 于 2013-11-2 10:17 编辑
网页局部字段导入,详见附件,能打开网址的交易策略下面文字导入excel,
- Option Explicit
- Sub ExtractData()
- On Error Resume Next
- Dim i, arr0, arr
- arr0 = Range(Cells(2, 3), Cells(Cells(65536, 3).End(xlUp).Row, 4))
- For i = 1 To UBound(arr0)
- arr0(i, 2) = Split(Split(Split(GetCode("UTF-8", arr0(i, 1)), "//交易策略")(3), "{")(1), "}")(0)
- arr = Split(Replace(arr0(i, 2), """", ""), ",")
- arr0(i, 2) = Replace(arr(2), " ", vbCrLf)
- arr0(i, 2) = arr0(i, 2) & vbCrLf & Replace(arr(6), " ", vbCrLf)
- arr0(i, 2) = arr0(i, 2) & vbCrLf & Replace(arr(5), " ", vbCrLf)
- arr0(i, 2) = arr0(i, 2) & vbCrLf & Replace(arr(4), " ", vbCrLf)
- Erase arr
- Next i
- Cells(2, 3).Resize(UBound(arr0), 2) = arr0
- MsgBox "数据提取完成"
- End Sub
- Function GetCode(CodeBase, Url) '第一个参数是设置编码方式(GB2312或UTF-8)第二个参数是地址.
- Dim xmlHTTP
- Set xmlHTTP = CreateObject("Microsoft.XMLHTTP")
- xmlHTTP.Open "get", Url, True
- xmlHTTP.send
- While xmlHTTP.ReadyState <> 4
- DoEvents
- Wend
- GetCode = xmlHTTP.ResponseBody
- If CStr(GetCode) <> "" Then GetCode = BytesToBstr(GetCode, CodeBase)
- Set xmlHTTP = Nothing
- End Function
- Function BytesToBstr(strBody, CodeBase)
- Dim ObjStream
- Set ObjStream = CreateObject("Adodb.Stream")
- With ObjStream
- .Type = 1
- .Mode = 3
- .Open
- .write strBody
- .Position = 0
- .Type = 2
- .Charset = CodeBase
- BytesToBstr = .ReadText
- .Close
- End With
- Set ObjStream = Nothing
- End Function
复制代码
问题.zip
(285.58 KB, 下载次数: 4, 售价: 5 个金币)
|
|