VSTO Excel - 如何创建具有多个区域的范围
VSTO Excel - How to create a range with multiple areas
如果我有一个或多个范围,如何将它们组合成具有多个区域的范围?
有人可能会想这样做...但这甚至无法编译...
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);
更新:
这不是重复...这是关于创建一个包含两个区域的范围...而不是从两个区域创建一个范围,每个区域都有一个单元格(这将导致只有一个区域的范围)
源自上述 "duplicate" 问题的答案之一。
注意:似乎如果区域可以合并,联合会执行此操作(例如,两个相邻的行),但如果它们不能像这样合并,则会创建多个区域。 (不是 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;
如果我有一个或多个范围,如何将它们组合成具有多个区域的范围?
有人可能会想这样做...但这甚至无法编译...
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);
更新:
这不是重复...这是关于创建一个包含两个区域的范围...而不是从两个区域创建一个范围,每个区域都有一个单元格(这将导致只有一个区域的范围)
源自上述 "duplicate" 问题的答案之一。
注意:似乎如果区域可以合并,联合会执行此操作(例如,两个相邻的行),但如果它们不能像这样合并,则会创建多个区域。 (不是 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;