VSTO在文本框中显示选中的单元格引用

我有一个窗体的值列表显示每个与相应的文本框,告诉程序显示它的细胞。当前用户input一个范围(如“A1”,“G6”等… )为他们想要显示的每个值,并保留空白。

有什么办法可以点击文本框,然后点击一个单元格,并在文本框中显示该单元格引用(如Goal Seek的工作方式)?

在您的VSTO代码中,您应该能够处理工作表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; 

一旦你有一个单元格的引用,你可以通过使用这个答案的代码来获取地址。

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