VBA兼容性问题:64位Windows7(缺少MSINET)和Trim功能兼容性问题

时间:2012-07-12 10:25:20

标签: excel vba excel-vba msinet

我正在尝试将在Windows XP 32位上运行的VB Excel应用程序升级到Windows 7 64位操作系统。影响此类操作有两个问题。我发现这些主题并不少见。

  1. VBA脚本必须连接到需要Microsoft Internet传输协议6.0(SP 6.0)的服务器 - 在System32目录中注册的MSINET。遗憾的是,上述库仅适用于32位操作系统,并且没有64位版本可用。我试图导入参考列表:这似乎工作,但是一旦我重新启动应用程序没有dll(只是一个ocx文件 - 活动X)可以找到。显然dll无法通过regsvr32应用程序注册。在64位版本的Windows上有类似于MSINET的东西吗?

  2. 我发现的第二个问题与前一个问题无关。应用程序需要解析删除空格的输入字符串。旧的VBA使用TRIM,我想我不得对其进行任何更改。但是,编译操作会导致以下错误:“编译错误:找不到项目或库”。没有引用丢失(MSINET除外)。

  3. 我安装了64位Windows 7,Office 2010,microsoft.office.interop.excel.dll 14。 谢谢

2 个答案:

答案 0 :(得分:3)

  1. 32位软件在64位系统上运行良好。您不需要64位ocx,无论如何都无法使用它。 Google提供了有关如何在64位Windows 7上注册32位ocx的详细手册,例如this one
  2. 一旦修复了丢失的ocx参考,缺失的修剪函数就会自行修复。同样,您可以find this out yourself进行搜索。
  3. 但是,如果您有64位办公室,则根本无法使用msinet控件,并且在删除对msinet的引用之前,修剪函数不会再出现。

答案 1 :(得分:2)

在某些Windows instalations中,我无法在System32下注册OCX。由于这成为我公司的正常问题,我的解决方法是:

  • 在云端硬盘中创建一个名为OCX的文件夹(可以是任何你想要的)
  • 将OCX放在那里
  • 以管理员身份启动cmd.exe
  • 在该文件夹中注册OCX:

    C:\Windows\System32> regsvr32.exe C:\OCX\mscomctl.ocx 
    

每次都有效。

请勿删除OCX文件夹。


修改

在全新的Windows 7/8安装中,我已经能够运行相同的应用程序而无需通过运行带有管理Previleges的Office应用程序(即Access)来注册OCX。 发现它是因为打印服务器出现了相同的OCX问题。 可能这可以通过编辑OCX权限而不是以管理员身份运行来修复。