寻找只有32位的替代schemeMicrosoft公共控件(ListView)

我有一个使用ListView控件的VBA / Excel开发的遗留应用程序。 不幸的是,它看起来像这些控件不能用于64位版本的Excel :

Office 2010中的本机64位进程无法加载32位二进制文​​件。 这包括MSComCtl的常见控件[如ListViews]。 当代码迁移到64位Office 2010时,必须find现有的Microsoft Office VBA解决scheme的替代scheme。

我需要将旧应用程序迁移到Excel 2010/13 x64。 除了那些ListView控件外,这个过程大多是无痛的。

我的主要select是什么来replaceListView控件,哪个是最有效的(从实现时间和难度的angular度来看)?

笔记:

  • 这个问题已经在MS论坛上提出,但没有给出实际的答案。
  • 添加.net标签,因为我怀疑有些解决scheme可能来自那里。

为了更清楚,这里是Excel用户表单的快照。 底部是列表视图(我有隐藏的机密信息),它具有可sorting的列,允许用户select多个不连续的行。

在这里输入图像描述

理论上可能的一件事就是将你的显示代码写成一个.Net程序集,并通过你的VBA代码中的COM来访问它(例如,请参阅如何使用Excel VBA中的.NET对象作为起点这个怎么做)。

这样你可以为你的控件编写.Net代码。 我自己并没有这样做,也不确定它是如何适用于你的问题,但它看起来像一个选项。

我刚刚find一个从Excel调用.Net的简短教程 。

我不知道这里有任何解决scheme。 但是,JKP 在VBA中开发了一个本地的TreeView,只有用户窗体才能取代TreeView – 在64位下工作正常。

虽然劳动强度,你可以考虑采用它到一个ListView控件…

你需要删除,然后重新注册控制,它会正常工作。 使用RegSvr32重新注册该控件。

有关详细信息,请参阅此链接: http : //answers.microsoft.com/zh-CN/office/forum/office_2010-access/listview-issue-in-access-2010/d0b6f86a-1d9c-4d7f-8566-b80a10bb67c6