可以在VBA之外使用的Excel RefEdit控件的替代方法

时间:2020-03-06 14:25:49  来源:igfitidea点击:

作为VBA的一部分提供的RefEdit控件有点bug,但是当我们希望人们指定一个或者多个单元格范围(即" Excel.Range"对象)时,它适合放置表格。

主要问题是我们只能在VBA用户窗体上使用RefEdit控件(Microsoft声明了这一点,我的测试也对此进行了确认)。我正在使用Delphi制作Excel加载项,并且正在寻找RefEdit控件的替代方法。

Excel.Application.InputBox Type:= 8是选择一系列单元格的另一种方法,但是当我们需要人们在单个表单上选择多个单元格区域时,它并不是非常友好。我目前最好的替代方法是从Delphi加载项中调用VBA表单,但这远非理想。

因此,理想情况下,我可以用RefEdit的替代品来代替,我可以在Delphi表单上使用。如果有的话,就不容易找到(我一直在努力搜索,而且找不到用于Delphi,VB6或者.NET的嵌入式RefEdit替代品)。

如果没有替代产品,我可能会尝试将自己的替代产品放在一起,但是我怀疑,即使不是没有可能,也很难制造出与RefEdit一样好的替代品。 RefEdit允许我们"选择"单元格而无需实际选择它们:它在所选单元格周围使用行进蚂蚁,而不是突出显示它们并更改" Excel.Application.Selection"。我不知道通过VBA,Delphi或者其他方式操纵Excel对象模型的方法。

任何提示,技巧,黑客,或者,如果我真的很幸运,很容易找到替换RefEdit的指针。

解决方案

寻找RefEdit的bug的解决方法时,我遇到了RefEdit控件的替换。当时第三方控制不是我的选择,但可能会对我们有所帮助。

从问题中不确定:我们是否尝试过将RefEdit导入Delphi?

我们可以从RefEdit.dll将其作为ActiveX控件导入,然后以任何Delphi形式删除TRefEdit控件。并且我们具有与VBA应用程序中相同的RefEdit。

还是它是我们尝试过的,但是由于RefEdit需要一些VBA woodoo而无法使用...?