更新C#

时间:2016-03-16 14:00:50

标签: c# excel

我正在使用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);

假设(未经测试)"选择"语句可以从中删除。只有他们在那里获得代码正常工作的视觉提示。 但是,这将按名称选择图表,清除过滤器,然后将过滤器重置为第一个指定日期和今天之间。

我喜欢编码!如此令人沮丧,却又如此有意义。

1 个答案:

答案 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);

我假设(未经测试)"选择"语句可以从中删除。只有他们在那里获得代码正常工作的视觉提示。但是,这将按名称选择图表,清除过滤器,然后将过滤器重置为第一个指定日期和今天之间。