【问题标题】:Capturing the selection of the currently selected cell捕获当前选定单元格的选择
【发布时间】:2023-03-06 04:01:01
【问题描述】:

我正在使用 VSTO 2013 使用 VB.NET 开发 Excel 插件(应用程序级别)。

我正在使用一个模拟Excel's "refEdit" control 的好项目。使用此控件,用户可以通过 SelectionChanged 事件从工作表中选择一个范围。

我的问题是:如果用户选择一个单元格,然后他启动 refEdit 控件(最小化表单)来选择一个单元格,他不能选择当前选择的单元格,只是因为它没有触发SelectionChanged 事件。为此,他必须选择另一个单元格(然后第一次填充 refEdit,使用新的选择地址),然后选择之前选择的单元格,最终将其地址放入控件中。

我没有找到任何出色的解决方法,只有选择另一个单元格之类的方法。如果我有“Clear.Selection”之类的东西,那将是完美的,但我认为它不存在,对吧?

任何聪明的解决方案?

【问题讨论】:

    标签: excel vsto selection add-in


    【解决方案1】:

    如果可能,最好编写在 refEdit 启动时运行的代码来执行您需要的任何操作,而不依赖于 SelectionChange 事件。

    Sheet事件并没有以明显的方式暴露出来,但是你可以使用下面的代码来触发事件:

    Run "Sheet1.Worksheet_SelectionChange", Selection
    

    Selection 作为事件的 Target 参数提供。


    Selection 可能不是Range,所以你应该考虑合并:

    If TypeName(Selection) = "Range" Then
    

    【讨论】:

    • 好的,如果我捕捉到用户点击进入当前选定的单元格,我可以运行这个运行命令,对吧?但是如何捕获此事件以强制选择更改?我仍然对这个问题感到震惊......
    • 我不太明白你在问什么。如果您在显示表单后立即运行我的代码,或者单击 refEdit,那么它将触发 SelectionChange 事件,这就是您要求发生的事情?
    • 否,因为这将强制选择当前选定的单元格。我想要的是:用户可以在表单打开后单击当前选定的单元格,并且此操作会填充参考编辑的文本框。问题是触发框填充的事件是“选择更改”......因此,如果他在表单打开后单击任何单元格,它会正确填充框,除了表单时选择的单元格是开放的。如果我按照您的建议进行操作,我将强制用户选择当前选择的单元格,但我想让用户在下次单击时做出此选择...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-09
    • 1970-01-01
    • 2019-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多