【原】根据图表反推数据的逆天操作

【原】根据图表反推数据的逆天操作

前言假设有这样一个数据表

我们很容易生成一张柱状图,如下:

但这是别人做的,发给你时,为了不让你看到原始数据,或不让你随便修改,所以只发给你了一张柱状图,没有原始数据.

当你那天想修改时,却忘记了是谁做的,怎么办?

办法总是有的好歹,他没有发给你PDF版,但只要是EXCEL可编辑版,就会有办法,因为图表是根据数据生成的,没有数据就不会有图表.有图表就说明数据是保存在什么地方的.

不信的话,你可以将鼠标放在任意一个数据点上,就会自动显示这个数据点的系列名称,横坐标和纵坐标的值

当然你也可以直接显示数据表,如下图所示

看到这里是不是明白了,数据是在的,只是怎么把它取出来而已.

头脑灵活的同学会可是想办法把它拷出来,但是好像无处下手啊

手脚灵活的同学已经抄了一半了,如果多了怎么办?

多了当然用VBA啊,这还用问吗?

进入正题CRTL+F11打开VBA编辑器,插入模块

写入下列代码:单引号后面为注释

Sub 根据图表还原成数据()

ActiveSheet.ChartObjects("图表1").Activate

'生成日期列

N = ActiveChart.SeriesCollection(1).Points.Count

ActiveChart.SeriesCollection(1).ApplyDataLabelsType:=xlDataLabelsShowLabel

For I = 1 To N

Cells(I + 1, 1) =ActiveChart.SeriesCollection(1).Points(I).DataLabel.Text

Next

'生成专业表头

For m = 1 To 4

With ActiveChart.SeriesCollection(m).DataLabels

.ShowSeriesName = True

.ShowValue = False

.ShowCategoryName = False

End With

Cells(1, m + 1) =ActiveChart.SeriesCollection(m).Points(1).DataLabel.Text

Next

'生成数据

For m = 1 To 4

ActiveChart.SeriesCollection(m).ApplyDataLabelsType:=xlDataLabelsShowValue

N =ActiveChart.SeriesCollection(m).Points.Count

For I = 1 To N

Cells(I + 1, m + 1) =ActiveChart.SeriesCollection(m).Points(I).DataLabel.Text

Next

Next

End Sub

运行程序,数据赫然在列,是不是很神奇!

总之VBA不可怕,怕的是你不会也不想学!

相关推荐

德德玛:突发脑溢血半身瘫痪,二婚丈夫不离不弃,用爱创造奇迹
天猫推出七天无理由线上换货服务的详细规范解读
365BET娱乐场下载

天猫推出七天无理由线上换货服务的详细规范解读

📅 09-14 👁️ 6169
凯美瑞2.0g跟2.0s的区别,凯美瑞20g和20s区别
365BET娱乐场下载

凯美瑞2.0g跟2.0s的区别,凯美瑞20g和20s区别

📅 07-01 👁️ 4855
英雄联盟黑色玫瑰服务器所在位置在哪
365BET娱乐场下载

英雄联盟黑色玫瑰服务器所在位置在哪

📅 09-02 👁️ 9988
腾讯学生云服务器怎么样
365bet365打不开

腾讯学生云服务器怎么样

📅 09-07 👁️ 722
《英雄聯盟》s賽開始時間介紹
365BET娱乐场下载

《英雄聯盟》s賽開始時間介紹

📅 08-07 👁️ 8226
字元信息
365bet365打不开

字元信息

📅 07-26 👁️ 8550
手游天龙,新手必知的拜师攻略
365平台是做什么的

手游天龙,新手必知的拜师攻略

📅 07-28 👁️ 998
精子的功能解剖学
365bet365打不开

精子的功能解剖学

📅 09-21 👁️ 8524