码迷,mamicode.com
首页 > 其他好文 > 详细

报表研究之工具篇-VBA

时间:2014-09-10 12:14:00      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:style   os   io   ar   for   数据   cti   sp   on   

最近一直在研究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=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

标签:style   os   io   ar   for   数据   cti   sp   on   

原文地址:http://www.cnblogs.com/wutongyuhou/p/3964010.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!