宏:宏就是一系列的操作步骤,比如在单元格输入数据/复制数据或者求和;也可以根据需要不断重复运行多次。
VBA:就是office提供的支持EXCEL程序的宏语言,比如编写语句和代码;通过这些代码完成程序。
所以宏就是VBA写的,但可以通过录制的方法制作宏,做完宏你可以查看相应的VBA语句。
1.宏录制
先在开发工具栏点击录制宏,在下方出入两个工作表,停止录制,运行刚才录制的宏(相当于执行刚才的操作步骤)可以发现又多了两个表格
每个操作里面都是SUB开头,SUB结尾
可以在宏代码后面加单引号进行注释,方便其他人阅读是什么操作
2.VBA简单示例:拆分工作表的宏操作
下面我们用宏拆分表格,在插入下面找到按钮,插入按钮,把代码输入,来让不同的工作表进行拆分,分别成为单独的excel,这个操作适合有有十几个表格时候,很方便
在这里点击开始拆分按钮,则会把下面四个表格分成四个excel。来看下代码的解释,
第一行,定义sh是工作表(整个excel文件是工作库,下面sheet单就是工作表)
第二行,定义mybook是工作库
第三行,将将mybook变成当前这个页面(活跃的工作库)
第四行,for循环,将my book所有工作表进行以下操作:对工作表复制/存储路径及工作表名称、格式/最后完成这个循环。
此时拆分完毕,可以在桌面看到四个单独的文件。
3. 用VBA与vlookup函数完成股票交易数据dashboard(动态表盘)
下面是标普500公司股票数据的可视化图表,选择不同公司不同时间就可以在右图直接呈现变化
一个是是整理好的图表,另一个是清洗之后但没有整理的数据,来看看怎么实现上述操作的。
首先在第一个表格(左侧)右键查看代码
左边表格的代码
第一行,输入的是名字,括号里是能触发change的一个范围
第二行,if的条件,把范围的位置设置在左边表格B7那里
第三行,当B7变化,则执行更新交易数据模块。可以看到B7的值就是股票代码
交易数据模块的代码又是怎样?
第一,行定义为string
第二行,代码=第一个工作表B7的值
第三行,操作当前表格Price表里面所有的内容赋值给symbol
第四行,筛选器就是把原始数据从那边自动挪到新表的symbol
在此基础上,我们希望交易数据随着开始和终止日期进行改变,对日期进行赋值并添加筛选器的代码如下
为了不全其他值,可以用vlookup函数在右表进行查找,比如公司名字进行如下操作,PE/PS等同理
都选好之后,可以在插入版块里点击组合图,选择日期、交易量、休市价格
因为价格、交易量不是一个数量级,所以跟前面文章一样,选择次坐标轴
得到下图之后,可以点击图表设计的选择数据,可以把系列1选择交易量这1列,系列2 选择休市价格这列得到下图
更改系列的名称得到下图,这时候选择其他公司股票,图表也就跟着变化了
同样可以加入股票K线图,选择前5列,插入K线图
最后就完成了整个股票交易量、交易数据的dashboard(动态表盘),点击不同公司,下图随之变化