如果未安装插件,Excel-VBA 会显示警告

Posted

技术标签:

【中文标题】如果未安装插件,Excel-VBA 会显示警告【英文标题】:Excel-VBA show Warning if Addon is not Installed 【发布时间】:2017-11-03 10:39:24 【问题描述】:

我正在使用 Excel 2013 文件,该文件由我更新以使用 PowerQuery 更轻松地导入数据。

它已经使用了 VBA 宏,如果尚未安装,我想包含一个带有下载 PowerQuery 链接的警告/消息框。

如何检查主机系统上是否存在 PowerQuery?

【问题讨论】:

您可能需要额外的版本检查,因为 2016 及更高版本将默认包含 PowerQuery ***.com/questions/24201107/… 的可能副本,然后您只需添加一个带有下载链接的 msgbox @QHarr 提供的链接中的解决方案效果很好。但是 2016 年的版本检查还需要吗? 【参考方案1】:

Rory 在link 上修改代码,我提供了类似以下的内容。注意:您可以使用 Rory 的附加代码来处理 2016 版本或更早的版本,确保已安装。

由于您不能直接使用超链接,我已经修改了 Wiktor Stribiżew 的代码 here,它允许用户在收到 msgbox 未安装后单击“确定”进入下载站点。

Option Explicit

Private Sub IsPowerQueryAvailable()
    Dim downloadlink As String
    downloadlink = "https://www.microsoft.com/en-gb/download/details.aspx?id=39379"

    Dim bAvailable As Boolean

    If Application.Version >= 16 Then
        bAvailable = True
    Else
        On Error Resume Next
        bAvailable = Application.COMAddIns("Microsoft.Mashup.Client.Excel").Connect
        On Error GoTo 0
        If Not bAvailable Then DownloadPowerQuery downloadlink
    End If

End Sub

Private Sub DownloadPowerQuery(downloadlink As String)

    Dim objShell As Object
    Dim Message As String
    Dim Wscript As Object

    Set objShell = CreateObject("Wscript.Shell")

    Message = MsgBox("Would you like to download PowerQuery?", vbYesNo, "Powerquery not available")

    If Message = vbYes Then
        objShell.Run (downloadlink)
    Else
        Wscript.Quit
    End If

End Sub

【讨论】:

只有在 bAvailable 为 false 时才应执行下载。否则,这是一个完美的工作示例。谢谢 @d3rdon 编辑所以希望能按预期进行

以上是关于如果未安装插件,Excel-VBA 会显示警告的主要内容,如果未能解决你的问题,请参考以下文章

在未安装的组件上调用 setState() [重复]

警告:无法在 React 本机中对未安装的组件执行 React 状态更新

有人会用ppt插件吗?我安装了islide插件不能用?显示啥引用设置未到对象实例

尝试要求未安装但不必要的模块时发出警告

未知插件中的警告:imageminSvgo。你忘记安装插件了吗?

Xcode 7.3 - 警告未显示且无法搜索项目