I thought these extension methods might be helpful:
public static Excel.Range ToRange(this ExcelReference o)
{
return AddIn.XL.get_Range(XlCall.Excel(XlCall.xlfReftext, o,
true));
}
public static ExcelReference ToXlRef(this Excel.Range o)
{
// First area
ExcelReference xlref = new ExcelReference(o.Row - 1, o.Row - 1 +
o.Rows.Count - 1, o.Column - 1, o.Column - 1 + o.Columns.Count - 1,
o.Worksheet.Name);
// Additional areas
if (o.Areas.Count > 1)
{
for (int i = 2; i <= o.Areas.Count; i++)
{
xlref.AddReference(o.Areas[i].Row - 1, o.Areas[i].Row - 1
+ o.Areas[i].Rows.Count - 1, o.Areas[i].Column - 1, o.Areas[i].Column
- 1 + o.Areas[i].Columns.Count - 1);
}
}
return xlref;
}