使用Excel宏无法连接HP ALM 12.53的问题求助
最近我在尝试用VBA连接HP ALM 12.53时踩了个坑——弹出**"Active X can't create object"**的报错,明明已经安装了HP ALM Connectivity Tool Add-in,也能看到C盘里C:\Program Files (x86)\Common Files\Mercury Interactive的文件夹内容,但连接就是失败。我的VBA代码如下:
Private Sub BtnAuthenticate_Click() errmsg = "No Error" On Error GoTo ErrorHandling Set tdc = CreateObject("tdapiole80.TDconnection") MsgBox ("Connect to QC Server") Set WSConfig = ThisWorkbook.Worksheets("ALM Express") If tdc.Connected Then Set tdc = Nothing End If tdc.InitConnectionEx (Trim(WSConfig.Cells(3, 6).Value)) Strusrnme = WorksheetFunction.Trim(TxtUserID.Text) strpwd = TxtPWD.Text errmsg = "Authentication failed. verify your UserID and Password" tdc.Login Strusrnme, strpwd '... End Sub
结合实际排查经验,给大家几个解决方向:
检查Office位数与控件兼容性:如果你的Office是64位版本,HP ALM Connectivity Tool的
TDAPIOLE80.dll是32位控件,64位Office对它的支持很有限。建议直接改用32位Office;如果必须用64位,得在VBA编辑器里手动添加引用:打开开发工具>Visual Basic>工具>引用,点击"浏览",找到C:\Program Files (x86)\Common Files\Mercury Interactive\TDAPIOLE80.dll添加,同时确保相关COM加载项已启用。手动注册TDAPIOLE80.dll控件:有时候安装Add-in后控件没有自动注册成功,需要手动操作。以管理员身份打开32位命令提示符(64位系统里找
C:\Windows\SysWOW64\cmd.exe),输入以下命令并回车:regsvr32 "C:\Program Files (x86)\Common Files\Mercury Interactive\TDAPIOLE80.dll"成功后会弹出注册成功的提示,要是报错找不到模块,检查路径是否和你的实际安装路径一致。
确认ALM服务器URL格式:
tdc.InitConnectionEx传入的URL必须是完整且正确的格式,比如http://your-alm-server-address:port/qcbin,一定要记得末尾加上qcbin,这是很多人容易漏掉的细节,缺了它就会导致连接初始化失败。调整IE浏览器安全设置:HP ALM的ActiveX控件依赖IE的配置,打开IE把ALM服务器地址添加到可信站点,然后进入Internet选项>安全>可信站点>自定义级别,启用所有和ActiveX相关的选项(比如"对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本"选启用),虽然这会降低一点安全等级,但对于ALM的ActiveX连接来说是必需的。
内容的提问来源于stack exchange,提问作者Mitesh Kumar

