寻找只有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