我正在使用C#重新创建VBA程序,并在更新数据透视表时遇到问题。 我用这个搜索了自己,我只能找到关于设置新图表的(粗略)信息。这个过程本身看起来非常简单,我似乎无法找到要在C#中翻译的单词。 (我是一个外行人,请原谅我,如果我的任何术语是"不正确")
我试图移植的代码(VBA - > C#)是;
Worksheets(MBTChartPage1).Activate
ActiveSheet.ChartObjects("Daily1").Activate
ActiveChart.PivotLayout.PivotTable.PivotFields("Trial Date").ClearAllFilters
ActiveChart.PivotLayout.PivotTable.PivotFields("Trial Date").PivotFilters.Add2 _
Type:=xlDateBetween, Value1:="01/01/2015", Value2:=Format(Date, "dd/MM/yyyy")
我可以激活包含图表的工作表,但这是我绊倒的地方。我无法弄清楚如何选择图表,更不用说编辑它了。
任何帮助都会非常感激,即使它只是建议如何按名称激活(选择)图表。
提前谢谢。
---- --- UPDATE
哇。这似乎困扰了很多人。
目前正在完成这个过程,甚至不确定我是否走在正确的道路上,但是,嘿,挑战是令人兴奋的不是他们!?
MBTChartPage = UpdateBook.Worksheets[MBTChartPage1];
Excel.Chart PChart = MBTChartPage.ChartObjects("Daily1");
Excel.PivotFields PFields = PChart.PivotLayout.PivotTable.PivotFields("Trial Date");
PChart.PivotLayout.PivotTable.ClearAllFilters();
只需要;
A)看看到目前为止是否有效,
B)了解如何重新添加日期过滤器。
简短回答,不,那不行。 我已经找到了如何按名称选择表格;
MBTChartPage = UpdateBook.Worksheets[MBTChartPage1];
MBTChartPage.Activate();
Excel.ChartObjects chartObject2 = MBTChartPage.ChartObjects(Type.Missing);
Excel.ChartObject myChart = (Excel.ChartObject)chartObject2.Item("Daily1");
Excel.Chart ChartSelect = myChart.Select();
现在正在处理清除和重置过滤器的工作。 一半在那里。
进入!!!
解决了它。
MBTChartPage = UpdateBook.Worksheets[MBTChartPage1];
MBTChartPage.Activate();
Excel.ChartObjects chartObject2 = MBTChartPage.ChartObjects(Type.Missing);
Excel.ChartObject myChart = (Excel.ChartObject)chartObject2.Item("Daily1");
Excel.Chart ChartSelect = myChart.Select();
myChart.Chart.PivotLayout.PivotTable.PivotFields("Trial Date").ClearAllFilters();
myChart.Chart.PivotLayout.PivotTable.PivotFields("Trial Date").PivotFilters.Add2(XlPivotFilterType.xlDateBetween, Type.Missing, "01/01/2015", DateTime.Today);
假设(未经测试)"选择"语句可以从中删除。只有他们在那里获得代码正常工作的视觉提示。 但是,这将按名称选择图表,清除过滤器,然后将过滤器重置为第一个指定日期和今天之间。
我喜欢编码!如此令人沮丧,却又如此有意义。
答案 0 :(得分:0)
解决。
MBTChartPage = UpdateBook.Worksheets[MBTChartPage1];
MBTChartPage.Activate();
Excel.ChartObjects chartObject2 = MBTChartPage.ChartObjects(Type.Missing);
Excel.ChartObject myChart = (Excel.ChartObject)chartObject2.Item("Daily1");
Excel.Chart ChartSelect = myChart.Select();
myChart.Chart.PivotLayout.PivotTable.PivotFields("Trial Date").ClearAllFilters();
myChart.Chart.PivotLayout.PivotTable.PivotFields("Trial Date").PivotFilters.Add2(XlPivotFilterType.xlDateBetween, Type.Missing, "01/01/2015", DateTime.Today);
我假设(未经测试)"选择"语句可以从中删除。只有他们在那里获得代码正常工作的视觉提示。但是,这将按名称选择图表,清除过滤器,然后将过滤器重置为第一个指定日期和今天之间。