如果我有一个或多个范围,我怎样才能将它们组合成一个有多个区域的范围?
有人可能会认为这样做......但这甚至不会编译......
Excel.Worksheet sheet = workbook.ActiveSheet;
Excel.Range rng1 = (Excel.Range) sheet.get_Range(sheet.Cells[1, 1], sheet.Cells[3,42]);
Excel.Range rng2 = (Excel.Range) sheet.get_Range(sheet.Cells[5, 1], sheet.Cells[6,42]);
Excel.Range result = new Excel.Range();
result.Areas.Add(rng1);
result.Areas.Add(rng2);
更新:
这不是重复......这是关于创建一个包含两个区域的范围...而不是从两个范围创建一个范围,每个范围都有一个单元格(这将导致只有一个区域的范围)
答案 0 :(得分:2)
源于上述“复制”问题中的一个答案。
注意:似乎区域可以组合,联盟将执行此操作(例如,两个相邻的行),但如果它们不能像这样组合,那么它会创建多个区域。 (不是100%肯定)
此外,Union可以有两个以上的参数......例如联盟(范围1,范围2,范围3等)
var excelApp = Globals.ThisAddIn.Application as Excel.Application;
var sheet = workbook.ActiveSheet as Excel.Worksheet;
var range1 = sheet.get_Range(sheet.Cells[1, 1], sheet.Cells[3,42]) as Excel.Range;
var range2 = sheet.get_Range(sheet.Cells[5, 1], sheet.Cells[6,42]) as Excel.Range;
var result = excelApp.Union(range1, range2) as Excel.Range;