我创建了我的frist Excel加载项,想要在用户选择的范围内找到特定的单元格。
我知道我需要的值的列。所以我测试它:
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”列的第一个值
当用户在“A”列中开始“选择”
时,这种方法很有效如果用户选择从C2到H20的抽样,则代码无法找到列“I” 我变得比其他范围,而不是“我”列。
我觉得对他来说“我”总是“9”。 当用户在新范围中选择“C2”到“H20”时,列“C”=“0”且列“L”= 9,因此代码选择列“L”即使我在代码中写入“I”
有谁知道,无论用户选择了哪个位置,我如何阅读用户选择的特定列或单元格?
提前谢谢
答案 0 :(得分:0)
正如您所发现的,当您处理选定的单元格时,左上角的单元格在处理该选择中的单元格引用时变为等效于A1,而其他单元格则由行和列引用偏移到左上角的单元格。
如果您希望在用户选择行截断的列I区域内进行搜索,那么我建议使用_Application.Intersect method。
如果您希望在列I的一部分中搜索选择顶部和底部行作为列I的边界,即使没有交集,也可以使用selection.cells [1]定义第一列中的第一个单元格。行并通过selection.rows.count调整大小。