Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用SAS执行Excel VBA宏_Vba_Excel_Sas - Fatal编程技术网

使用SAS执行Excel VBA宏

使用SAS执行Excel VBA宏,vba,excel,sas,Vba,Excel,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

我的系统上安装了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, "", "")

谁能帮我解决这个错误?此外,非常感谢您为SAS项目的运行提供指导。我对VBA和SAS都是新手。

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

根据:

1) workspaceservers的默认端口为8591

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

建议的连接详细信息:

obServer.MachineDNSName=“XXXXXXX”

obServer.Protocol=SASObjectManager.ProtocolBridge

观察者端口=8591

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


不确定使用
SASApp
v
sas
之间是否有区别,因此建议您尝试第一种方法,如果失败,则尝试第二种方法。

我也有类似问题。。找不到任何解决方案。更改端口无效。如果将Set语句更改为“Nothing”作为变量,也会导致自动化错误,我同意。。尝试了你给@QHarr的解决方案,但不起作用。用相同的错误号抛出“自动化错误”,我将在晚些时候或明天再试一次