0

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

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

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

我在 64 位 Windows 7、Office 2010、microsoft.office.interop.excel.dll 14 上安装。谢谢

4

2 回答 2

3
  1. 32 位软件在 64 位系统上运行良好。你不想要一个 64 位的 ocx,无论如何你都无法使用它。Google 上有很多关于如何在 64 位 Windows 7 上注册 32 位 ocx 的手册,例如这个
  2. 修复丢失的 ocx 引用后,丢失的 trim 函数将自行修复。同样,您可以通过搜索自己找到这一点

但是,如果您有 64 位的 office,您将根本无法使用 msinet 控件,并且在您删除对 msinet 的引用之前,trim 功能将不会重新出现。

于 2012-07-12T10:38:24.260 回答
2

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

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

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

这每次都有效。

不要删除 OCX 文件夹。


编辑:

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

于 2014-06-18T14:58:04.153 回答