我正在尝试在列中找到特定值,但是在页面的某个部分有一个数据透视表(偶尔),有时会延伸到此列。 如果数据透视表已经扩展到列,我的程序崩溃了。如果没有,那么代码运行正常。 “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的字段。虽然这没有结果。如果有人知道如何做到这一点肯定会解决我的问题。
非常感谢任何有关此问题的帮助。
答案 0 :(得分:0)
好的,所以我想出了怎么做。
DataPage.PivotTables("PivotTable1").PivotFields("Years").ShowDetail = false;
DataPage.Range["AT:AT"].Columns.AutoFit();
在查找之前添加此内容将会崩溃"年"列,防止日期重叠到我的查找路径中。
在找到这个之后,我意识到它仍然没有工作,但幸好意识到为什么在我把我的发现写成垃圾之前。 在我的查找中,我正在查看列中的值。当数据透视表在列上方延伸时,它会调整列的大小以适合数据透视数据,这会使列太小而无法显示完整日期,只留下" ##"展示。 通过设置" AutoFit"在最小化数据透视表后的列上,它再次显示完整日期值,并启用我的查找以产生答案。
希望这将有助于未来的某些人。 (如果他们能理解我的随意性。)