C# VSTO Excel-如何创建包含多个区域的范围

C# VSTO Excel-如何创建包含多个区域的范围,c#,excel,range,vsto,C#,Excel,Range,Vsto,如果我有一个或多个区域,如何将它们组合成一个具有多个区域的区域 有人可能会这样想。。。但这甚至不会编译 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,

如果我有一个或多个区域,如何将它们组合成一个具有多个区域的区域

有人可能会这样想。。。但这甚至不会编译

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);
更新:


这不是复制品。。。这是关于创建一个包含两个区域的范围。。。不是从两个区域创建一个区域,每个区域有一个单元格(这将导致一个区域只有一个区域)

来自上述“重复”问题中的一个答案

注意:如果区域可以合并,则联合将执行此操作(例如,两个相邻的行),但如果不能这样合并,则会创建多个区域。(对此不是100%确定)

此外,联合可以有两个以上的参数。。。e、 g.联合(范围1、范围2、范围3等)


可能的副本你也应该阅读答案。我在其他答案中看到你在说什么。。。我不确定当问题不是关于你在问什么,被接受的答案不是关于你在问什么。。。如果这真的被认为是重复的。。。但我听到你在说什么。。。我会继续输入答案,以便这个问题有一个明确的答案。。。如果它被StackOverflow删除了,那就这样吧。我之所以相信它是重复的,是因为你们都在谈论2个范围,并希望将它们合并为1。如果源范围包含1个单元格或多个单元格,则完全不相关。-在我看来,当你说“我如何求1+2之和”这个问题不同于“我如何求3+4之和?”并用不同的数字来论证这一差异时,也是一样的。仅供参考,StackOverflow不会删除该问题,即使有人批准了该标志,也只会将其标记为重复。(不会有“坏”的事情发生)唯一的原因,我提供的问题的公认答案对你不起作用,是因为这是最俗气的方式。
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;