这个是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