【问题标题】:Execute Excel VBA Macro using SAS使用 SAS 执行 Excel VBA 宏
【发布时间】:2018-04-04 00:18:54
【问题描述】:

我的系统上安装了 SAS EG 版本 7.1 和 Office 2013。我正在尝试通过从 VBA 调用它们来运行我的 SAS 项目。作为第一步,我尝试使用我在网上找到的以下代码调用一个简单的 PROC 步骤:

Sub createTable()
    Dim obObjectFactory As New SASObjectManager.ObjectFactory

    Dim obObjectKeeper As New SASObjectManager.ObjectKeeper

    Dim obServer As New SASObjectManager.ServerDef

    Dim obSAS as SAS.workspace

    Dim query as String
    query = "PROC SQL; CREATE TABLE ME.TABLE1; RUN;"

    obServer.MachineDNSName = "XXXXXXXXX"
    obServer.Protocol = ProtocolBridge
    obServer.Port = 8561
    obObjectFactory.LogEnabled = True

    Set obSAS = obObjectFactory.CreateObjectByServer("SASApp", True, obServer, "", "")

    obSAS.LanguageService.Submit query

End Sub

但我在以下行收到运行时错误“-2147213310”:

Set obSAS = obObjectFactory.CreateObjectByServer("SASApp", True, obServer, "", "")

Runtime error '-2147213310 谁能帮我解决这个错误?此外,非常感谢运行 SAS 项目的任何指导。我是 VBA 和 SAS 的新手。

【问题讨论】:

    标签: vba excel sas


    【解决方案1】:

    错误表明您正在连接到元数据服务器而不是工作区服务器。

    根据this

    1) 工作区服务器的默认端口是 8591。

    2) 工作空间服务器也可以在不同的机器上运行。连接到您的配置文件,转到服务器列表,找到您要连接的服务器并右键单击上下文菜单“属性”以查看您的工作区服务器的正确连接配置文件。

    建议的连接细节:

    obServer.MachineDNSName = "XXXXXXX"

    obServer.Protocol = SASObjectManager.Protocols.ProtocolBridge

    obServer.Port = 8591

    设置 obSAS = obObjectFactory.CreateObjectByServer("sas", True, obServer, Nothing, Nothing)

    不确定使用 SASAppsas 之间是否有区别,因此建议您尝试第一个,如果失败,请尝试第二个。

    【讨论】:

    • 我有类似的问题..找不到任何解决方案。更改端口无效。并且使用“Nothing”作为变量更改 Set 语句也会导致自动化错误
    • 我同意.. 尝试了你给@QHarr 的解决方案,但它不起作用。抛出具有相同错误号的“自动化错误”
    • 我稍后或明天再试一次
    猜你喜欢
    • 2011-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    • 1970-01-01
    • 2011-06-24
    • 1970-01-01
    相关资源
    最近更新 更多