【问题标题】:launch SAS code through VBA modules and licence needed通过 VBA 模块启动 SAS 代码并需要许可证
【发布时间】:2018-01-05 16:37:03
【问题描述】:

我正在尝试通过 VBA 启动以下 SAS 代码。但是一个

错误 429 ActiveX 无法创建对象

正在显示。 有人知道 SAS 或 Excel 需要哪些许可证/模块/required_drivers? 我正在使用 SAS Enterprise Guide 6.1 和 Microsoft Office 15。 相同的代码之前在另一台包含 SAS 9.3 和 Microsoft Office 16 的所有 SAS 许可证的 PC 上运行。

    Dim OleSAS As Object
    Set OleSAS = CreateObject("SAS.Application")
    OleSAS.Visible = True
    OleSAS.Wait = True
    OleSAS.Submit("SAScode")
    OleSAS.Quit
    Set OleSAS = Nothing

【问题讨论】:

  • 您正在尝试启动本地 SAS.EXE?或者当您说您使用企业指南时,您实际上是在向服务器提交代码并且没有本地 SAS?
  • "ActiveX 无法创建对象" 通常意味着您给 CreateObject 的 ProgID 要么不存在于 Windows 注册表中,要么类型库未注册用于后期绑定,或者位数不兼容(例如,尝试使用 32 位进程中的 64 位库)。鉴于相同的代码在另一台机器上运行,我首先确认主机应用程序 (Excel) 的位数在两台机器上相同,然后验证库注册。
  • @Joe 是的,我想将我的 SAS 代码提交给 SAS.exe。 SAS 在本地安装。
  • @Mat'sMug 非常感谢,我去看看

标签: vba excel sas connection


【解决方案1】:

从 VBA 调用 SAS 的最简单方法是通过 StoredProcess 服务器。这种方法也很好地将 SAS 代码与 VBA 逻辑分开。可以找到here的解释,主要涉及到:

  • 将您的 SAS 代码注册为具有流输出的存储过程
  • 在 excel 中设置 web 查询,在 url 中带有相关参数
  • QueryTables 对象上调用refresh 事件

这种方法的另一个好处是您不需要插件或 SAS 的本地实例。但是您确实需要 SSO。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 2019-09-02
    • 2018-02-10
    • 2011-01-12
    相关资源
    最近更新 更多