如何在Excel中使用C#获取用户选定范围中的特定单元格

我创build了我的第一个Excel加载项,并希望查找用户select的范围内的特定单元格。

我知道列中的值是我需要的。 所以我testing它:

Excel.Range selection = Globals.ThisAddIn.Application.Selection as Excel.Range; Excel.Range firstValue = selection.Columns["I"].Find("*", Type.Missing, Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart,Excel.XlSearchOrder.xlByColumns,Excel.XlSearchDirection.xlNext, false, Type.Missing,Type.Missing); 

现在我有“I”栏的第一个值,

当用户所做的“select”从列“A”开始时,

如果用户select从C2到H20的取样,代码不能find列“我”我变得比其他范围,而不是“我”列。

我认为他是“我”总是“9”。 当用户在新范围中从“C2”到“H20”select的列是“C”=“0”,列“L”= 9时,即使我在代码中写入“I”,代码select列“L” 。

有没有人有一个想法,我怎么能读取特定的列或细胞我想要的内心select的用户,无论用户开始他的select?

先谢谢你

正如你发现的那样,当你处理一组单元格时,左上angular的单元格在处理这个select单元格中的单元格引用时变成了A1的等价物,而其他单元格被它们偏移到的行和列引用左上angular的单元格。

如果你正在寻找在由用户select的行截断的列的区域内search,那么我会build议_Application.Intersect方法 。

如果您正在寻找在列I的一部分中以select顶部和底部行作为列I的边界进行search(即使没有相交),请使用selection.cells [1] .row并resize来定义列I中的第一个单元格它通过selection.rows.count。