如何检查一个Excel单元格是否属于一个范围,以及它的地址相对于范围

从我的C#应用​​程序,我正在使用WorkSheet.UsedRangefind工作表中的数据范围。

我需要检查一个特定的单元格C13是否属于UsedRange; 如果它属于,那么它的行号和列号在范围内。

例如,如果范围从行10和列B开始,那么C13是范围内的行4和列2。

我在这里发现了一个类似的问题: 检查选中的单元格是否在特定范围内

给出的解决scheme是Intersect方法。

但在C#中,Excel.ApplicationClass的Intersect方法需要大量的参数,而我可以将Missing.Value传递给这么多的参数,我想知道是否有其他方法,而不是使用Intersect方法。

谢谢。

这可以工作吗?

private static string GetRelativeAddress(Range cell, Range range) { int startRow = range.Row; int startColumn = range.Column; int endRow = range.Row + range.Rows.Count - 1; int endColumn = range.Column + range.Columns.Count - 1; if (cell.Row >= startRow && cell.Row <= endRow && cell.Column >= startColumn && cell.Column <= endColumn) { return $"R{cell.Row - startRow + 1}C{cell.Column - startColumn + 1}"; } return String.Empty; }