64位office2013 429错误

stdmis 2018-04-07 12:23:39
以前写的一个VBA脚本,在EXCEL2010中运行正常,可以达成目 标,最近装了office2013 64位的版本,再运行这个脚 本就提示出错

错误429 ActiveX部件不能创建对象
从网上搜索了一下,有的说是64位的office不支持ActiveX, 如果真这样就悲剧了
有的说是office2013的一个问题,有专门的fix it, 不过我没找到.
我也尝试更新office2013,把所有的更新都安装了.还是这个错误.

所以想再次请教各位,是否有好的解决办法?


...全文
675 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mu_jiannan 2019-01-12
  • 打赏
  • 举报
回复
我在调用wmp时也遇到同样问题,在excel内预先手动插好activex,然后对这个预先插入的对象进行操作就可以用。这是一种妥协方案。肯定有更好的解法。
赵4老师 2018-04-08
  • 打赏
  • 举报
回复
不要做A语言代码修改为B语言代码的无用功。 也不要做用A语言代码直接调用B语言代码库这样复杂、这样容易出错的傻事。 只需让A、B语言代码的输入输出重定向到文本文件,或修改A、B语言代码让其通过文本文件输入输出。 即可很方便地让A、B两种语言之间协调工作。 比如: A将请求数据写到文件a.txt,写完后改名为aa.txt B发现aa.txt存在时,读取其内容,调用相应功能,将结果写到文件b.txt,写完后删除aa.txt,再将b.txt改名为bb.txt A发现bb.txt存在时,读取其内容,读完后删除bb.txt 以上A可以替换为任何一种开发语言或开发环境,B可以替换为任何一种与A不同的开发语言或开发环境。 除非A或B不支持判断文件是否存在、文件读写和文件更名。 但是谁又能举出不支持判断文件是否存在、文件读写和文件更名的开发语言或开发环境呢? 可以将临时文件放在RamDisk上提高效率减少磨损磁盘。 数据的结构很复杂的话,文本文件的格式问题可参考json或xml 共享临时文本文件这种进程之间的通讯方法相比其它方法的优点有很多,下面仅列出我现在能想到的: ·进程之间松耦合 ·进程可在同一台机器上,也可跨机,跨操作系统,跨硬件平台,甚至跨国。 ·方便调试和监视,只需让第三方或人工查看该临时文本文件即可。 ·方便在线开关服务,只需删除或创建该临时文本文件即可。 ·方便实现分布式和负载均衡。 ·方便队列化提供服务,而且几乎不可能发生队列满的情况(除非硬盘空间满) ·…… “跨语言、跨机,跨操作系统,跨硬件平台,跨国,跨*.*的”苦海无边, 回头是“使用共享纯文本文件进行信息交流”的岸! 请自行将以上A语言替换为64位的Excel,B语言替换为32位的DLL。
stdmis 2018-04-07
  • 打赏
  • 举报
回复
不要提什么dll文件没注册的原因,因为在这台电脑上,安装有k3ERP,且可以正常使用,这里只是调用K3的组件, 之前装的是office2010,不会出这个错误,可以正常的执行VBA脚本,现在是更新到了64位office2013,就出了这个问题 相关的代码

Public Conn As New ADODB.Connection
Public K3Login As Object
Public strFileName, strBillType As String

'首先调用K3的登陆组件做登陆K3的操作,取得连接数据库的字符串,完成与数据库的连接
'然后打开要导入的EXCEL表
'再根据打开的表的导入对应的资料(客户/供应商,销售发票/采购发标内容,销售清单/采购清单)
'最后关闭连接


Sub K3ErpLogin()
    Dim strConn As String
    Set K3Login = CreateObject("K3Login.ClsLogin")
    If Not K3Login.CheckLogin Then
        MsgBox "连接不成功"
        Set K3Login = Nothing
        End
    End If
    strConn = Split(Split(K3Login.PropsString, "}")(0), "{")(1)
    Set K3Login = Nothing
    Conn.
o大耳鼠o 2018-04-07
  • 打赏
  • 举报
回复
引用 楼主 stdmis 的回复:
以前写的一个VBA脚本,在EXCEL2010中运行正常,可以达成目 标,最近装了office2013 64位的版本,再运行这个脚 本就提示出错 错误429 ActiveX部件不能创建对象 从网上搜索了一下,有的说是64位的office不支持ActiveX, 如果真这样就悲剧了 有的说是office2013的一个问题,有专门的fix it, 不过我没找到. 我也尝试更新office2013,把所有的更新都安装了.还是这个错误. 所以想再次请教各位,是否有好的解决办法?
请楼主先看一下这个按钮背后的宏代码,贴出来或者将附件上传
o大耳鼠o 2018-04-07
  • 打赏
  • 举报
回复
引用 2 楼 stdmis 的回复:
不要提什么dll文件没注册的原因,因为在这台电脑上,安装有k3ERP,且可以正常使用,这里只是调用K3的组件, 之前装的是office2010,不会出这个错误,可以正常的执行VBA脚本,现在是更新到了64位office2013,就出了这个问题 相关的代码

Public Conn As New ADODB.Connection
Public K3Login As Object
Public strFileName, strBillType As String

'首先调用K3的登陆组件做登陆K3的操作,取得连接数据库的字符串,完成与数据库的连接
'然后打开要导入的EXCEL表
'再根据打开的表的导入对应的资料(客户/供应商,销售发票/采购发标内容,销售清单/采购清单)
'最后关闭连接


Sub K3ErpLogin()
    Dim strConn As String
    Set K3Login = CreateObject("K3Login.ClsLogin")
    If Not K3Login.CheckLogin Then
        MsgBox "连接不成功"
        Set K3Login = Nothing
        End
    End If
    strConn = Split(Split(K3Login.PropsString, "}")(0), "{")(1)
    Set K3Login = Nothing
    Conn.
还就是这个问题,64位的Excel,无法使用32位的DLL,无解。

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧