如何使用 Excel 互操作对列进行分组?
如果我录制一个宏(通常是一个很好的开始方式),我会得到以下代码:
Columns("I:M").Select
Selection.Columns.Group
不幸的是,由于几个问题,这不起作用,至少在 C++ 中是这样。首先,Application.Selection
返回一个普通的Range
,然后Range.Columns
是另一个Range
。 Range.Group
是这个方法:
此方法仅适用于数据透视表。
那么如何使用 Excel 互操作创建列组?
即使我成功创建了一个组,我如何缩小/扩展它?我的意思是单击 + 以显示组的内容,或者相反,“单击”减号以隐藏组。如果我在录制宏时这样做,它根本不会反射(reflect)在宏中。
最佳答案
尽管 Range.Group()
文档似乎与数据透视表相关,但如果您使用 Range.Columns
提取列,然后应用 .Group()
方法到该范围,就会达到预期的效果。在 C# 中:
Range range = sheet.get_Range("c1","e1");
range.Columns.Group();
编辑:完整的示例,再次用 C# 编写(抱歉,这是我方便的示例):
Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
app.Visible = true;
app.Workbooks.Add();
Worksheet sheet = app.Workbooks[1].Sheets[1];
Range range = sheet.get_Range("c1","e1");
range.Columns.Group();
关于c++ - Excel 互操作 : Grouping columns,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10246682/