VBA如何判断指定网站上特定文件是否存在?

snowtiger2000 2021-02-03 08:58:11
大家好,

现在在execl里用vba写程序,读取指定网站上的文件内的数据。需要先判断一下该文件是否存在,否则直接打开会出错而无法继续。
我试过dir和FileSystemObject.fileexists 都不行

网站文件的地址在 https://www.ark-funds.com/auto/trades/ARK_ARKF_Trades.xls

麻烦高手指点一下 该如何判断这个文件是否存在

谢谢
...全文
220 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
X-i-n 2021-02-06
  • 打赏
  • 举报
回复
不需要提前判断,直接下载就行,如果碰到报错,而且发现是http 404状态码,就代表资源不存在,在这里面处理。
snowtiger2000 2021-02-06
  • 打赏
  • 举报
回复
引用 4 楼 X-i-n 的回复:
dir也好,fso也好,excel对象模型也好,所有操作对象都必须是文件系统的本地文件,无法用来判断一个http协议的文件存在不存在、操作一个http协议的文件甚至是打开一个http协议的文件。做法也和你说了,先下载到本地再操作本地文件。
大侠,如果文件不存在,下载就直接报错啊 我就是想先判断它存不存在,然后再下载
X-i-n 2021-02-06
  • 打赏
  • 举报
回复
dir也好,fso也好,excel对象模型也好,所有操作对象都必须是文件系统的本地文件,无法用来判断一个http协议的文件存在不存在、操作一个http协议的文件甚至是打开一个http协议的文件。做法也和你说了,先下载到本地再操作本地文件。
snowtiger2000 2021-02-06
  • 打赏
  • 举报
回复
http下载请求直接就报错了 本人编程小白 还烦请高手能给出代码 谢谢 先贴出源码 Application.ScreenUpdating = False Dim strCSV As String strCSV = "https://www.ark-funds.com/auto/trades/ARK_ARKF_Trades.xls" X = Sheet1.Range("B65536").End(xlUp).Row + 1 // 需要在这个打开之前 检测一下网络文件是否存在 否则就出错无法执行了 请指导解决代码 谢谢 Workbooks.Open Filename:=strCSV, ReadOnly:=True i = Worksheets(1).Range("A65536").End(xlUp).Row Worksheets(1).Range("a5:h" & i).Copy Sheet1.Cells(X, 2) Workbooks(2).Close Application.ScreenUpdating = True MsgBox "数据导入完毕!", vbInformation, "提示" End Sub
脆皮大雪糕 2021-02-03
  • 打赏
  • 举报
回复
如果只是判断文件在不在,不一定要全部下载,只要发http的下载请求,对面服务器不返回错误就说明文件存在 当然,也可能是返回一个自定义404界面,要自己判断一下。
X-i-n 2021-02-03
  • 打赏
  • 举报
回复
只能用xmlhttp直接把文件下载下来,报404错误就是不存在。

2,503

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧