首页 > 代码库 > 报表研究之工具篇-VBA
报表研究之工具篇-VBA
最近一直在研究VBA,写报表的工作。将所得的知识,经验总结一下,与大家分享。
工具篇,VBA
1.EXCEL一个最好用的功能就是录制宏,当一个函数拿不准要怎么写,用什么函数表示的时候,录制就帮了大忙了。
2.VBA相对于录制的宏,可以更精确,更聪明,逻辑更清晰,执行也更有效。特别是它的循环和递归,直接解放了人的双手。
3.VBA的基本操作
(1)定位:
基本单位:sheets(页),Rows(行),Columns(列),cells(单元格),RANGE(一个范围的单元格)
相对于每个基本单位,我们都可以选择跳转(select),清空(clear),取消合并(UnMerge),合并(Merge).删除(delete),激活(activate),复制(copy),粘贴(paste)
其实它并不局限于当前的某行某列,更加有效的方法是在规则上的控制。比如:某页的最后一行,某页的最后一列。
这样的方式就会更加灵活。
LastRow = Sheets("名称“).Range("a65536").End(xlUp).Row ‘取数据表的最后一行数据的行号
Lastcol = Sheets("名称").Cells(6, 255).End(xlToLeft).Column ‘取数据部的第六行的最后一列的数据。
(2) 时间
如果你想定位时间,比如今天
1.直接用EXCEL的函数。并且只取其值,不取函数。
Range("D6").Select
ActiveCell.FormulaR1C1 = "=Today()"
Range("D6") = Range("D6").Value
2. VBA函数DATE.
Range("D6").Select
Range("D6").Value=http://www.mamicode.com/date
(3).排版
列宽
Columns("C").ColumnWidth = 5
Columns("B").ColumnWidth = 22
Range(Columns(4), Columns(40)).ColumnWidth = 9
行宽
(4).循环
while
........
wend
优点:当有两个表,或者两个变量的时候,该while特别好用。
for i =0 to 18 step 2
......
next
优点:特别适合一张表。
(5)条件判断
IF .....THEN..... 条件判断的利器
(6) 统计
1 COUNTIF. Application.CountIf(Range(Cells(8, 3), Cells(32, 3)), "Up") 统计范围内”UP“的个数。
2 VLOOKUP.Application.VLookup(Cells(mNum, 2), Worksheets("UMP关键key值").Range("A:I"), 9, 0) 查询函数。
(7)创建新页并起名
Sheets.Add After:=Sheets(Sheets.count)
aa = Sheets("名称").Cells(38, i)
Sheets(Sheets.count).Name = aa
Sheets(Sheets.count).Select
(8)连字符&。具有无比的粘性,将字符和数字连在一起。
aa = Sheets("UMP关键key值").Range("I" & i)
ab = Sheets("UMP关键key值").Range("J" & i)
ac = aa & " - " & ab
报表研究之工具篇-VBA