我创建了第一个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”列而不是“ I”列,而不是其他范围。
我认为对他来说,“我”总是“ 9”。当用户在新范围中从“ C2”到“ H20”选择列为“ C” =“ 0”且列“ L” = 9时,即使我在代码中写“ I”,代码也会选择列“ L” 。
有谁知道如何在用户的选择范围内读取想要在用户选择范围内的特定列或单元格?
先感谢您
正如您所发现的,当您处理单元格的选择时,在该选择中处理单元格引用时,左上角的单元格将等于A1,而其他单元格由行和列引用,它们与左上角的单元格。
如果您要在用户选择的行所截断的列区域内进行搜索,则建议使用_Application.Intersect方法。
如果您要搜索的是第I列的一部分,即使没有交集,也将选择的顶部和底部行作为第I列的边界,请使用selection.cells [1] .row定义第I列的第一个单元格并调整其大小它是由selection.rows.count决定的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句