以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 以下代码Foxtable中有替代方法吗? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=78456) |
-- 作者:jspta -- 发布时间:2015/12/9 15:10:00 -- 以下代码Foxtable中有替代方法吗? 这个是VBA中借QueryTable功能进行查询,Foxtable中有没有类似的方法? 该功能主要是访问网站时,网站返回一个csv文件,我需要自动下载该文件,读取内容或者保存。 Sub test() Dim myQuery As QueryTable Dim sht_Data As Worksheet, sht_URL As Worksheet, wb As Workbook Dim rng As Range Set sht_URL = ThisWorkbook.Worksheets("Sheet1") \' 定义网址列表所在工作表 Set wb = Workbooks.Add \' 新建临时工作簿 Set sht_Data = wb.Worksheets(1) \' 定义数据工作表 sht_Data.Activate \' 显示数据工作表 \' 添加一个外部查询定义 Set myQuery = ActiveSheet.QueryTables _ .Add(Connection:="URL;" & sht_URL.[A1], _ Destination:=sht_Data.[A1]) myQuery.BackgroundQuery = False \' 禁止后台更新查询 Application.DisplayAlerts = False \' 关闭提示窗口,防止保存文件时要求覆盖确认搜索 With sht_URL For Each rng In .Range(.Range("A1"), .Range("A65536").End(xlUp)) \' 遍历所有网址 If UCase(Left(rng, 7)) = "HTTP://" Then \' 仅处理网址数据 sht_Data.Cells.ClearContents \' 清除原有数据 myQuery.C & rng \' 定义新的外部数据源 myQuery.Refresh \' 更新获取数据 \' 保存为CSV格式的文件 sht_Data.SaveAs Filename:=Trim(Mid(rng, InStr(rng, "s=") + 2, 99)) & ".xls", FileFormat:=xlExcel8 End If Next rng End With wb.Close savechanges:=False \' 关闭临时工作簿 Application.DisplayAlerts = True \' 恢复提示窗口 End Sub |
-- 作者:大红袍 -- 发布时间:2015/12/9 15:22:00 -- 汗,你直接用webbrowser读取网页,或者用get、post请求,都行。 |
-- 作者:jspta -- 发布时间:2015/12/9 15:40:00 -- 用get、post请求,都行。这个要怎么做? 代码中的这部分挺方便的,Foxtable中能否实现类似功能
sht_Data.Cells.ClearContents \' 清除原有数据 myQuery.C & rng \' 定义新的外部数据源 myQuery.Refresh 这样我就能够避免下载文件后打开了,我只需要读取文件内容,不需要保存文件。 |
-- 作者:大红袍 -- 发布时间:2015/12/9 15:42:00 -- 要下载什么啊?网址啊,你要做什么功能啊? |
-- 作者:jspta -- 发布时间:2015/12/9 15:47:00 -- http://table.finance.yahoo.com/table.csv?s=000001.sz 下载这个网址上数据导入数据库。
|
-- 作者:大红袍 -- 发布时间:2015/12/9 16:01:00 -- 呃,直接下载不行?
Network.DownloadFile("http://table.finance.yahoo.com/table.csv?s=000001.sz", "d:\\temp.csv","" ,"" ,True, 100000, True)
直接读取也可以啊
Dim rqst As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("http://table.finance.yahoo.com/table.csv?s=000001.sz")
|
-- 作者:jspta -- 发布时间:2015/12/9 16:27:00 -- 晕死,原来测试怎么没办法读取,谢了。 |