ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > Excel VBA > 如何使用VBA下载DDX在线的网页数据

如何使用VBA下载DDX在线的网页数据

作者:绿色风 分类: 时间:2022-08-18 浏览:86
楼主
xmyjk
Q:如何下载

A:
  1. Sub Test()
  2.     Dim i As Long, rw As Long
  3.     Dim tmp() As String, arr() As String
  4.     Dim p As Long
  5.         
  6.     [a1:t1] = Split("股票代码,股票名称,最新价,涨跌幅,换手率,量比,DDX,DDY,DDZ,DDX60,DDY60,5日内,10日内,连续,连增,涨速5,特大买,特大卖,小单买,小单卖", ",")
  7.     On Error Resume Next
  8.     For p = 1 To 41
  9.     rw = [a65536].End(xlUp).Row + 1
  10.    
  11.     With CreateObject("Microsoft.XMLHTTP")
  12.         .Open "get", "http://www.ddx.name/script/DDEscript.asp?mk=&sortID=7&sortBY=-1&page=" & p & "&randNum=0.7210666082133784", False
  13.         .setRequestHeader "Content-Type", "text/html"
  14.         .send
  15.         tmp() = Split(Split(Split(Replace(Replace(.responsetext, """", ""), "],[", ","), "var pageArray = new Array([")(1), "]);")(0), ",")
  16.     End With
  17.     ReDim arr(UBound(tmp) \ 20, 19)
  18.     For i = 0 To UBound(tmp)
  19.        arr(i \ 20, i Mod 20) = tmp(i)
  20.     Next
  21.     Cells(rw, 1).Resize(UBound(arr) + 1, 20) = arr
  22.     Next
  23.     [a:t].Columns.AutoFit
  24.    
  25.     Dim nm As Long
  26.     Dim j As Long, k As Long
  27.     Dim gp() As String, tmp1() As String
  28.     Dim m As Long
  29.                
  30.     With CreateObject("Microsoft.XMLHTTP")
  31.         .Open "get", "http://www.ddx.name/js/stockCode.js", False
  32.         .setRequestHeader "Content-Type", "text/html"
  33.         .send
  34.         tmp1() = Split(Split(Split(Replace(Replace(StrConv(.responsebody, vbUnicode, &H804), """", ""), "],[", ","), "var stockCodeArray=new Array([")(1), "]);")(0), ",")
  35.     End With
  36.     ReDim gp(UBound(tmp1) \ 2, 1)
  37.     For m = 0 To UBound(tmp1)
  38.        gp(m \ 2, m Mod 2) = tmp1(m)
  39.     Next
  40.         
  41.     nm = [a65536].End(xlUp).Row - 1
  42.     For j = 1 To nm
  43.     For k = 1 To UBound(gp) + 1
  44.     If Trim(Cells(j + 1, 1).Value) = gp(k - 1, 0) Then Cells(j + 1, 2).Value = gp(k - 1, 1): Exit For
  45.     Next
  46.     Next
  47.    
  48.     MsgBox "Ok"
  49. End Sub

ddx.rar
2楼
JOYARK1958
謝謝提供學習下載中

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap