使用SAS执行Excel VBA宏

时间:2018-04-04 00:18:55

标签: excel vba excel-vba sas

我的系统上安装了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的新手。

1 个答案:

答案 0 :(得分:1)

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

根据this

1)workspaceservers默认端口是8591。

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

建议的连接详情:

obServer.MachineDNSName =“XXXXXXX”

obServer.Protocol = SASObjectManager.Protocols.ProtocolBridge

obServer.Port = 8591

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

不确定使用SASApp v sas之间的区别是否建议您尝试使用第一个,如果失败则尝试使用第二个。