使用SAS执行Excel VBA宏
我的系统上安装了SAS EG 7.1版和Office 2013。我试图通过从VBA调用SAS项目来运行它们。作为第一步,我尝试使用我在网上找到的以下代码调用一个简单的PROC步骤:使用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
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
vsas
之间是否有区别,因此建议您尝试第一种方法,如果失败,则尝试第二种方法。我也有类似问题。。找不到任何解决方案。更改端口无效。如果将Set语句更改为“Nothing”作为变量,也会导致自动化错误,我同意。。尝试了你给@QHarr的解决方案,但不起作用。用相同的错误号抛出“自动化错误”,我将在晚些时候或明天再试一次