CG1和其他几位朋友对REFEDIT控件在VISUAL BASIC不能使用讨论得比较多 以下是我个人的理解,不代表一定正确 MS的标准解答有一个KB281542 http://support.microsoft.com/kb/q281542/ 当您插入 RefEdit 控件位于中 Com 加载项, 窗体上控件预期无效。 显示窗体, 时您将无法当前工作表中选择范围。 RefEdit 控件按钮用于折叠或展开形式不无法工作。 RefEdit 控件旨在仅置于 Excel VBA 项目中窗体时工作。 项目有要存储在一个 .xls 或 *.xla 文件。 对于该控件以正常, 之间某些特殊交互 Excel、 用户窗体和控件本身是必需的。 就是说,REFEDIT本身这个控件是与WORKBOOK或它的VBPROJECT有关的(每一个WORKBOOK对象与VBPROJECT项目对象都是一一对应的,是哪一个并不重要),但问题是,你在调入这个控件时,根本没有显式的属性(或方法)指定它的这个关联对象,即使是在EXCEL中设计REFEDIT控件也一样——我们知道,它可以选定本WORKBOOK的工作表RANGE ADDRESS——但在VB(不是VBA)里,没有本地的THISWORKBOOK,而这个控件的属性中没有选项,你还没有办法设定。。。。。。 想象一下一个数据控件,却没有数据连接、数据库设定的情况;一个图象控件,却发现它没有指定源图象文件的属性,这个设计很不合理吗......也不一定,因为它们可能是“专用”的设计:那个图象控件最早或就是用于某个“本窗体图象”而不考虑取磁盘文件,那个数据控件也只是临时的用户输入数据而不是连接数据源,诸如此类 当然,很可惜,如果这个REFEDIT可以这样设定就好了:SET REFEDIT.WORKBOOK=EXCEL.APPLICTION.WORKBOOKS("XXX.XLS"),我们可以在其它的编程工具(如VISUAL BASIC而不是VBA)中先取得APPLICATION对象,通过这个对象得到WORKBOOK,但看起来,REFEDIT在设计上少了相关的属性,这就成了依赖了某个OFFICE VBA项目专用的控件 |