Excel VBA,访问 URL 时提示“Windows 安全”

Posted

技术标签:

【中文标题】Excel VBA,访问 URL 时提示“Windows 安全”【英文标题】:Excel VBA, I get a prompt "Windows security" when accessing an URL 【发布时间】:2015-09-04 03:31:12 【问题描述】:

我有一个访问 URL HTTPS 的 Excel 文件。 URL 作为带有用户名和密码的基本身份验证。

这个宏每天早晚都会运行。它需要它是自动的。我有用户名和密码。

问题是每次我运行宏时,它都会提示我“Windows 安全”。用户名和密码已经填满,因为我确实在我的凭据中添加了这个连接。 “windows 安全”只是等待用户点击回车。这个宏应该会自动运行,不能等待有人点击确定。

我确实尝试过使用 VBS 脚本登录,但它仅在用户在会话中处于活动状态时才有效。看到这个:VBA code to pass username & password

我也尝试将用户名和密码放在 URL 中,例如:...

在没有“Windows 安全”提示的情况下如何连接???

这里是我的添加连接函数:

Function GetForcast(DateStart As String, DateEnd As String)


    Sheets("Forecast RAW").Select
    With Sheets("Forecast RAW").QueryTables.Add(Connection:= _
        "URL;https://weather.dtn.com/basic/rest-3.4/obsfcst.wsgi?dataTypeMode=0001&dataType=HourlyForecast&startDate='" & DateStart & "'T00:00:00Z&EndDate='" & DateEnd & "'T00:00:00Z&stationID=KILG" _
        , Destination:=range("$A$1"))
        .Name = "00Z&stationID=KILG"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = True
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlEntirePage
        .WebFormatting = xlWebFormattingNone
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        'Shell "WScript C:\Temp\Logon.vbs", vbNormalFocus
        .Refresh BackgroundQuery:=False
      End With

End Function

【问题讨论】:

你解决了吗?我也有同样的问题 您是否尝试在您的网址上使用“http”而不是“https”? “我确实尝试过使用 VBS 脚本登录,但它仅在用户在会话中处于活动状态时才有效”是什么意思?你能再解释一下吗... 【参考方案1】:

如果您无法控制远程机器的安全级别,那么我会选择以下解决方案之一:

使用 SendKeys 发送 Enter 键或等效的击键,为您“单击”按钮。使用计时器在您进行身份验证后等待 2-3 秒,然后发送 Enter 键,这样它就不会在显示 msgbox 之前发送 Enter。

使用 Windows API 获取安全消息弹出句柄,然后您可以通过编程方式对其进行控制。

【讨论】:

【参考方案2】:

有时浏览器的安全性是问题,因此您可以尝试并声明 Internet Explorer;

将 IE 调暗为新的 InternetexplorerMedium

尝试在开发者选项下降低宏安全性

转到互联网选项并降低安全级别,但要注意这是危险的,通常不推荐

如果您需要更多帮助,可以通过 howtovba@gmail.com 给我发送电子邮件

或访问我的 youtube 页面并发表评论,评论您希望在哪些视频上获得帮助 https://www.youtube.com/watch?v=hfAhmae4iqA

【讨论】:

以上是关于Excel VBA,访问 URL 时提示“Windows 安全”的主要内容,如果未能解决你的问题,请参考以下文章

访问 VBA 以在不提示的情况下覆盖文件

关于excel vba 常用警告提示关闭的问题

在工作簿关闭的Excel VBA中禁用剪贴板提示

如何通过 Access VBA 正确访问 Excel 文件

VBA Excel - 访问查询不可更新

Excel VBA 查询访问失败