在我的C#应用程序中,我使用WorkSheet.UsedRange查找工作表中的数据范围。
我需要检查特定单元格C13是否属于UsedRange;如果它属于什么,它的行数&范围内的列号。
例如,如果范围从第10行和第B列开始,则C13是范围内的第4行和第2列。
我在这里发现了类似的问题: Checking if selected cell is in specific range
给出的解决方案是Intersect方法。
但在C#中,Excel.ApplicationClass的Intersect方法需要大量参数,虽然我可以将Missing.Value传递给这么多参数,但我想知道除了使用Intersect方法之外是否还有其他方法。 / p>
感谢。
答案 0 :(得分:0)
这可以吗?
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;
}