You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PPT VBA如何直接导入URL随日期动态变化的网页图片

解决方案

方案1:动态拼接时间戳生成URL(最简便,适用于URL规则固定仅时间变化的场景)

你提供的URL中仅GFS/后的10位时间戳动态变化,格式为yyyyMMddHH,示例中固定为当日06点数据,直接用VBA日期函数生成对应字符串即可自动适配最新URL:

' 生成当日06点的时间戳字符串,可根据实际更新时区/时间调整规则
Dim timeStr As String
timeStr = Format(Date, "yyyyMMdd") & "06"
' 拼接最终图片URL
Dim imgUrl As String
imgUrl = "https://www.fnmoc.navy.mil/wxmap_cgi/dynamic/GFS/" & timeStr & "/gfs10.wav.000.go_mex.gif"

整合到原有导入逻辑的完整代码:

'Sat_image.
Dim timeStr As String
timeStr = Format(Date, "yyyyMMdd") & "06"
Dim imgUrl As String
imgUrl = "https://www.fnmoc.navy.mil/wxmap_cgi/dynamic/GFS/" & timeStr & "/gfs10.wav.000.go_mex.gif"

ActiveWindow.Selection.SlideRange.Shapes.AddPicture( _
 FileName:=imgUrl, _
 LinkToFile:=msoFalse, _
 SaveWithDocument:=msoTrue, Left:=0, Top:=74.30732, _
 Width:=358.5, Height:=218.5972).Select
 With ActiveWindow.Selection.ShapeRange(1)
 .ZOrder msoSendToBack
 End With

如果存在当日06点数据未更新的情况,可新增错误捕获逻辑,自动回退拼接前一天的时间戳重新请求即可。

方案2:爬取列表页解析最新URL(适用于URL规则不固定的场景)

如果后续URL除了时间还有其他字段变动,可以先请求图片所属的列表页面,通过正则匹配提取最新的图片地址,无需关注路径规则变化:

' 后期绑定方式,无需提前引用类库
Dim http As Object
Set http = CreateObject("MSXML2.XMLHTTP.6.0")
' 替换为你实际访问的图片列表页地址
Dim listPageUrl As String
listPageUrl = "https://www.fnmoc.navy.mil/wxmap_cgi/dynamic/GFS/"

http.Open "GET", listPageUrl, False
http.Send

' 正则匹配目标图片URL,规则可根据页面实际内容调整
Dim reg As Object
Set reg = CreateObject("VBScript.RegExp")
reg.Pattern = "https://www.fnmoc.navy.mil/wxmap_cgi/dynamic/GFS/\d+/gfs10\.wav\.000\.go_mex\.gif"
reg.Global = False

If reg.Test(http.ResponseText) Then
    Dim imgUrl As String
    imgUrl = reg.Execute(http.ResponseText)(0).Value
    ' 后续直接调用AddPicture方法传入imgUrl即可
End If

如果网站有基础反爬限制,可在请求时添加User-Agent等请求头模拟浏览器访问即可。

内容的提问来源于stack exchange,提问作者George

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 10:24:03