Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel将传递到Range.Group的参数存储在何处_Excel_Vsto_Openxml_Pivot Table_Vba - Fatal编程技术网

Excel将传递到Range.Group的参数存储在何处

Excel将传递到Range.Group的参数存储在何处,excel,vsto,openxml,pivot-table,vba,Excel,Vsto,Openxml,Pivot Table,Vba,这与透视表有关 我正在尝试使用VBA或C获取存储在电子表格中的一些数据,但我不知道它在对象模型中的位置。我知道数据在电子表格中,因为当我解压缩电子表格时,我会在数据透视缓存中看到它。以下OpenXML文档特别讨论了该字段: 在RangeProperties类中,请特别参见groupInterval属性 例如,XML显示: 但我不知道如何在运行时从Excel对象模型中获得这一点 上面的数据表示用户为在数据透视表中对一组行进行分组而创建的条目。下面是关于如何到达它的更多细节 单击数据透视表的行时,可

这与透视表有关

我正在尝试使用VBA或C获取存储在电子表格中的一些数据,但我不知道它在对象模型中的位置。我知道数据在电子表格中,因为当我解压缩电子表格时,我会在数据透视缓存中看到它。以下OpenXML文档特别讨论了该字段:

在RangeProperties类中,请特别参见groupInterval属性

例如,XML显示:

但我不知道如何在运行时从Excel对象模型中获得这一点

上面的数据表示用户为在数据透视表中对一组行进行分组而创建的条目。下面是关于如何到达它的更多细节

单击数据透视表的行时,可以对行进行分组。例如,假设有1000行,但值的范围是1-100。您不希望看到所有1000行,只希望看到10行,每组100行。第一组是一行,该行聚合值在1-100之间的所有行,下一组聚合值在100-200之间,以此类推

在“行标签”区域的任意单元格上单击鼠标右键,然后从关联菜单中单击“分组”项目时,将出现一个小对话框,其中标题栏中有分组和字段: -开始时间: -结束于: -作者: 在起始和结束字段旁边会有一个复选框

我将采用默认值,并递增100

在VBA或C VSTS中执行此操作的等效方法是:

选择单元格:

对当前的单单元格选择调用Group方法,例如:

Selection.Range.Group真、真、100

此时,与数据透视字段关联的数据透视项以标题结尾,例如1-100

现在,如果再次右键单击该字段并选择组项,则会出现相同的对话框弹出窗口,对话框中的字段将填充您为该数据透视表选择的先前值

但是,用于填充该对话框的信息似乎不存在于对象模型中的任何位置。我想我只是不知道该去哪里找

有人知道吗


所以中的基本问题是,当我对单个单元格范围对象调用Group方法并传入各种参数时,这些参数在对象模型中保留在哪里?我知道它就在那里,因为Excel本身能够加载它,并且它存储在电子表格中。

它没有显示在对象模型中。Rory,谢谢。另外,如果您碰巧有任何信息证实我可以添加到我的参考资料中以供后代参考,这将非常有帮助。在工作簿的余留事件中,使用OpenXml从VSTO C中获取这些信息是否安全?也就是说,在保存工作簿但仍由Excel打开后,使用OpenXml SDK打开工作簿以读取数据。。此时,我可能需要使用VSTO将该数据保存在customxml部件中,然后再次保存。所以确实有两个问题。1保存工作簿后可以打开工作簿,但仍可以用excel打开。2通过VSTO对象模型修改内存中的工作簿后,是否可以在AfterSave事件中再次调用Save。Re 2只要禁用事件以避免递归,就应该可以。我不能评论第1点,因为我没有使用VSTO。
  <fieldGroup base="0">
    <rangePr startNum="19" endNum="947" groupInterval="656"/>
    <groupItems count="4">
      <s v="&lt;19"/>
      <s v="19-684"/>
      <s v="685-1350"/>
      <s v="&gt;1351"/>
    </groupItems>
  </fieldGroup>