转自EXCEL不加班
按照约定,点“在看”人数太少,今天开始就不聊函数PK,转移话题聊VBA。
还记得这张现金日记账汇总表吗?
汇总表,提取每一个银行的名称还有余额。
明细表,余额就是E列最后一个金额。
你的做法可能是先一个个复制粘贴工作表名称,再一个个复制粘贴每个表的余额。这当然可以解决问题,不过效率太低了吧,你不加班谁加班?
也有比较聪明的,先获取工作表名称,然后用LOOKUP函数查找余额,这样保证以后的余额更新,也能正确获取。
如果你学VBA,那你就会看到让你震惊的一幕,点一下汇总的按钮,1秒搞定。
这才是真正的效率!
也许你会认为这个VBA代码很麻烦,其实这个真的很简单,很短的语句就可以实现。
Sheets.Count就是统计一共有多少个工作表。
Sheets(i).Name就是获取每个工作表的名称。
Sheets(i).Range("e65536").End(xlUp)就是获取每个工作表E列最后一个非空单元格的值。
Cells(i, 1)就是A列,Cells(i, 2)就是B列。
For Next就是一个循环语句。
知道了意思以后,如果要自己更改就变得更简单了。
VIP群有一个类似的问题,就是A列提取工作表名称,B列提取每个表的B2单元格。
Sub 汇总1() Dim i% For i = 2 To Sheets.Count Cells(i, 1) = Sheets(i).Name Cells(i, 2) = Sheets(i).[b2] NextEnd Sub
Sheets(i).[b2]这个就是代表每个表的B2单元格,B2在VBA有很多种表示法,除了[B2],还有Cells(2, 2)、Range("b2")。
VBA入门虽然有点难,不过只要你掌握了基本的方法,工作效率会大大提升。
,