C# Excel:使用模式匹配查找单元格
C# Excel: Find cells using pattern matching
有没有办法将 Range.Find() 方法与仅限数字的通配符或正则表达式一起使用?
我正在尝试查找具有“2015 M05”、“2016 M08”、“2017 M01”等值的单元格,以解析电子表格中的日期。
到目前为止,我能想到的最好的方法是使用通配符“?”形成搜索字符串“???? M??”
object missingVal = System.Reflection.Missing.Value;
Excel.Range match = allCells.Find("???? M??", missingVal, Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart,
Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlNext, false, missingVal, missingVal);
但是,一旦我在某个地方有一个双词标签的第二个词以 "M" 开头,那将 运行 出问题。
编辑:我认为最简单的事情是如果我有某种可以在 Range.Find() 中使用的纯数字通配符。但是“#”似乎不起作用,所以我想知道是否有一些解决方法?
您可以在模式中使用*
。像 *?M??
假设 M## 模式是唯一的。
有没有办法将 Range.Find() 方法与仅限数字的通配符或正则表达式一起使用?
我正在尝试查找具有“2015 M05”、“2016 M08”、“2017 M01”等值的单元格,以解析电子表格中的日期。
到目前为止,我能想到的最好的方法是使用通配符“?”形成搜索字符串“???? M??”
object missingVal = System.Reflection.Missing.Value;
Excel.Range match = allCells.Find("???? M??", missingVal, Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart,
Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlNext, false, missingVal, missingVal);
但是,一旦我在某个地方有一个双词标签的第二个词以 "M" 开头,那将 运行 出问题。
编辑:我认为最简单的事情是如果我有某种可以在 Range.Find() 中使用的纯数字通配符。但是“#”似乎不起作用,所以我想知道是否有一些解决方法?
您可以在模式中使用*
。像 *?M??
假设 M## 模式是唯一的。