【问题标题】:VSTO Display Selected Cell Reference in Text BoxVSTO 在文本框中显示选定的单元格引用
【发布时间】:2013-05-31 02:11:04
【问题描述】:

我有一个 Windows 窗体,其中包含要显示的值列表,每个值都有一个相应的文本框,告诉程序在哪个单元格中显示它。当前用户输入一个范围(例如“A1”、“G6”等...) 对于他们想要显示的每个值,并将剩余的留空。

有什么方法可以单击文本框,然后单击一个单元格并让该单元格引用出现在文本框中(就像 Goal Seek 的工作原理一样)?

【问题讨论】:

    标签: c# excel vsto


    【解决方案1】:

    在您的 VSTO 代码中,您应该能够处理 Worksheet SelectionChange 事件

    例如,在我们拥有的 VSTO 项目中,我们在启动时订阅每个工作表的 OnChange 事件:

      private List<Excel.Worksheet> _Worksheets = new List<Excel.Worksheet>();
    
      private void ThisWorkbook_Startup(object sender, System.EventArgs e)
      {
       foreach (Excel.Worksheet sheet in Worksheets) //Could test for sheet name here
       {
        _Worksheets.Add(sheet);
        sheet.SelectionChange += 
            new Excel.DocEvents_SelectionChangeEventHandler(Sheet_SelectionChange);
       }
      }
    

    然后您应该能够在处理程序中获取 ActiveCell,例如:

    Excel.Range activeCell = (Excel.Range) this.Application.ActiveCell;
    
    //get the cell value (or other properties)
    object value = rng.Value;
    

    一旦你引用了单元格,你就可以使用来自this answer的代码获取地址。

    然后您应该能够更新文本框的值。

    【讨论】:

      猜你喜欢
      • 2013-08-07
      • 2019-02-24
      • 1970-01-01
      • 1970-01-01
      • 2021-03-03
      • 2019-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多