【问题标题】:Pivot Table interfering with find in column数据透视表干扰列中的查找
【发布时间】:2016-05-30 14:01:42
【问题描述】:

我正在尝试在列中查找特定值,但是在页面下方(有时)有一个数据透视表,有时会延伸到该列。 如果数据透视表已延伸到该列,我的程序就会崩溃。如果没有,那么代码运行良好。 "MonthlyStartDate 是一个字符串 "2013 年 8 月"。

LastRowMonthly = DataPage.Range["AT:AT"].Find(MonthlyStartDate, Type.Missing, XlFindLookIn.xlValues, XlLookAt.xlWhole, XlSearchOrder.xlByRows, XlSearchDirection.xlNext, Type.Missing, Type.Missing, Type.Missing).Row;

我尝试将搜索限制在日期可能出现的行中, Range["AT7:AT48"] 不过这没什么区别。如果数据透视表运行到列中它会崩溃,如果没有,那么它运行正常。

数据透视表从第 52 行的不同列开始,无法移动。 我还尝试研究如何折叠数据透视表上的日期列字段,这是导致表运行到列 AT 的字段。但这并没有结果。如果有人知道这是如何完成的,那肯定会解决我的问题。

对于这个问题的任何帮助将不胜感激。

【问题讨论】:

    标签: c# excel pivot-table


    【解决方案1】:

    好的,所以我想出了怎么做。

    DataPage.PivotTables("PivotTable1").PivotFields("Years").ShowDetail = false;
    DataPage.Range["AT:AT"].Columns.AutoFit();
    

    在 Find 之前添加它会折叠“Years”列,防止日期重叠到我的 Find 路径中。

    在找到这个之后,我意识到它仍然无法正常工作,但幸运的是,在我将我的发现视为垃圾之前,我意识到了原因。 在我的查找中,我正在查看列中的值。当数据透视表延伸到列上时,它会调整列的大小以适应数据透视数据,这会使列太小而无法显示完整日期,只显示“##”。 通过在最小化数据透视表后在列上设置“AutoFit”,它会再次显示完整的日期值,并使我的 Find 能够产生答案。

    希望这对将来的某人有所帮助。 (如果他们能理解我的胡言乱语。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-01
      • 2020-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-05
      相关资源
      最近更新 更多