EXCEL VBA初步

2019-01-07 11:38

应用VBA操作EXCEL

Excel对象模型中的常用对象

Application,workbooks,workbook,worksheet,range, cell 1.application对象

application.Activesheet.cells(1,2)=time msgbox activecell.value with activecell.font .bold=true .italic=true End with 2. workbook对象

Application.activeworkbook.save

3.worksheet对象

Msgbox worksheets(“sheet1”).range(“a1”) Worksheets(“sheet1”).range(“a7”).value=20

Worksheets(“sheet1”).range(“b7”).formula= “=sum(a1:a5)” 4.range对象的columns,rows属性 Set rng=activesheet.range(“c1:h26”) Msgbox rng.columns.count Msgbox rng.rows.count

6.woeksheet.range对象的cells属性 Worksheets(1).cells(1,1).value=24 Sub setuptable() Dim I as long

Worksheets(“sheet1”).activate For i=1 to 5

Cells(1.I).value=i Next i End sub

Worksheet(1).range(“c5:c10”).cells(1,1).formula=”=rand()” 应用实例

1. 使用VBA合并列

Sub mergetest() Dim I as long For I = 3 to 30

Cells(I,3)=cells(I,1) & cells(I,2) Next End sub

2. 自动隐藏或者显示表格中无数据的行

Sub hidecell() Dim I as long For I = 1 to 300

If cells(I,1).value=”” then Rows(i).hidden=true

End if Next i En d sub

Sub shoecell() Dim I as long For i=1 to 300

I f cells(I,1).value<>” ” then Rows(i).hidden=false End if Next i End sub

3. 使用VBA操作工作表单元格

Public sub writescell() [a1]=100 [a2:a4]=10

Range(“b1”)=200 Range(“c1:c3”)=300 Cells(1,4)=400

Range(cells(1,5),cells(5,5))=50 En sub

Public sub readcell() Msgbox [a1]

Msgbox range(“b1”) Msgbox cells(1,4) End sub

Sheets(4).[a1]

Sheets(4).range(“b1”) Sub roundtozero() Dim I as long Dim rcell as range For i= 1 to 20

Set rcell=worksheets(“sheet2”).cells(i,4) If isnumeric(rcell.value) then If abs(rcell.value)<0.1 then Rcell.value=0 End if End if Next i End sub

4. 查找工作表的第一个空行

Sub findempty() Dim x as long X=1

Do until (isempty(cells(x,2).value) X=x+1 Loop

Msgbox “空行为” & x Cells(x,2)=time En d sub

5. 改变EXCEL界面的标题

Sub changecaption()

Application.Caption = \我的EXCEL\End Sub

Sub mytime()

Application.Caption = Now()

Application.OnTime Now + TimeValue(\End Sub

Application.ontime(开始运行时间,运行的过程名,运行的最晚时间,是否安排一个新的ontime过程)

Application.ontime now +timevalue(“00:00:15”),”my_procedure” Application.ontime timevalue(“17:00:00”), ”my_procedure” Application.ontime

earliesttime:=timevalue(“17:00:00”),procedure:= , ”my_procedure”,schedule:=false 6. 隔行格式化工作表

Sub colorsheet() Dim I as long

For i= 1 to application.selection.rows.count If I mod 2=1 then

Selection.rows.interior.color=rgb(255,0,0) End if Next i End sub

7. 批量修改数据

Sub changevalue() Dim I as long For i=1 to 10

Range(“a11:a20”).cells(I,1).value=range(“a11:a20”).cells(I,1).value+5 Next i End sub

应用VBA自定义函数 引用(切换的快捷键F4) A1引用样式 引用位置 列A行9交叉处的单元格 在列A和行9到行20之间的单元格区域 在行12和列B到列E之间的单元格区域 行5中的全部单元格 使用的引用 A9 A9:A20 B12:E12 5:5 行5到行10之间的全部单元格 列H中的全部单元格 列H到列J之间的全部单元格 列A到列E和行10到行20之间的单元格区域 绝对引用与相对引用以及混合引用 相对引用=A1+B2 A 1 3 绝对引用=$A$1+$B$1 A 1 3

R1C1引用样式 含义 对在同一列,上面俩行的单元格的相对引用 对在下面俩行,右面俩列的单元格的相对引用 对在工作表的第二行,第二列的单元格的绝对引用 对活动单元格整个上面一行单元格区域的相对引用 对当前行的绝对引用 运算符优先顺序 优先级 1 2 3 4 5 6 7 8 9 自定义函数 创建自定义函数

类似EXCEL求平均值的VBA函数

Function myaverage(rng As Range) As Double Dim i As Long

运算符 : 空格 , % ^ *或/ +或- & =,>,<,>=,<= B 2 4 B 2 4 5:10 H:H H:J A10:E20 =A1+B2 (3) =A2+B2(7) =$A$1+$B$1(3) =$A$1+$B$1(3) 引用 R[-2]C R[2]C[-2] R2C2 R[-1] R Dim num As Long Dim sum As Double num = rng.Rows.count For i = 1 To num

sum = sum + rng.Cells(i, 1) Next i

myaverage = sum / num End Function


EXCEL VBA初步.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:-信息提示

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: