带你入门VBA.docx
- 文档编号:2435108
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:22
- 大小:52.09KB
带你入门VBA.docx
《带你入门VBA.docx》由会员分享,可在线阅读,更多相关《带你入门VBA.docx(22页珍藏版)》请在冰豆网上搜索。
带你入门VBA
第一期:
带你入门VBA
第二期:
进阶操作VBA
第三期:
编制简单的自定义函数
第四期:
如何控制工作薄和工作表
第五期:
如何控制单元格
第一期:
带你入门VBA
1、马上新建一个EXCEL文件,用绘图插入一个矩形,点击右键,在菜单中点击指定宏,再点击新建。
会出现
Sub矩形1_单击()
EndSub
2、在两句中间加入:
Sheets("sheet1").Range("a1")=100
结果如下:
Sub矩形1_单击()
Sheets("sheet1").Range("a1")=100
EndSub
3、再加一句:
Sheets("sheet1").Cells(2,1)=200
Sub矩形1_单击()
Sheets("sheet1").Range("a1")=100
Sheets("sheet1").Cells(2,1)=200
EndSub
这是两种单元格的基本录入方法,都懂吗?
补充:
单元格和工作表在VBA的表示方法
(1)Range("单元格地址")如Range("a1")即为A1单元格;
(2)CELLS(行,列)如CELLS(1,1)=A1,CELLS(2,1)=A2;
(3)工作表在VBA中表示方法:
sheets("工作表名")。
4、再输入下面的循环程序
Sub矩形1_单击()
DimxAsInteger‘声明x为整数型变量
Forx=1To20‘x的值为从1到20循环
Sheets("sheet1").Cells(x,1)=x‘单元CELLS(X,1)的值班等于x值
Next
EndSub
这个程序的结果A1至A20的值分别为1到20
补充:
“DIM变量名称AS变量类型”这个是声名变量用的,就象是平时别人给你介绍客人:
他是干什么的,只是介绍了我们才能针对性的谈话。
变量也一样,我们给程序介绍:
这个是整数型,你没必要把他当作其他类型对待,这样系统对你声明的变量作整数型对待了,如果不介绍系统还要花费一定的内存去判断新出现的变量是什么?
结果是多占用内存影响运算速度。
5、如果刚才的明白,再加一句,是如何在A21计算出A1:
A20的和
Sub矩形1_单击()
DimiAsInteger
Fori=1To20
Sheets("sheet1").Cells(i,1)=i
Next
Range("a21").Value=Application.WorksheetFunction.Sum(Range("a1:
a20"))
EndSub
在VBA不直接支持在EXCEL工作表中的一些函数,如果要调用就必须加上Application.WorksheetFunction,SUM求和语法和工作表中的一样,但表示不能直接SUM(A1:
A20),要用VBA的表示方法SUM(Range("a1:
a20"))。
补充:
每个函数前都要加Application.WorksheetFunction.吗?
如果是单个调用必须加;如果是多个调用,就可以用WITH语句省去后面的
Sub矩形1_单击()
DimiAsInteger
Fori=1To20
Sheets("sheet1").Cells(i,1)=i
Next
WithApplication.WorksheetFunctionRange("a21").Value=.Sum(Range("a1:
a20"))
Range("a22").Value=.Average(Range("a1:
a20"))
EndWith
EndSub
注意.Sum和.Average前要有一个英文实心点”.”。
6、布置个习题:
请在工作表SHEET1的D4:
D36单元格中填充4-36的数值,并在D37单元格中求和,并计算处A列存放数据的行数
Sub矩形1_单击()
DimiAsInteger
Fori=4To36
Sheets("sheet1").Cells(i,4)=i
Next
Range("d37").Value=Application.WorksheetFunction.Sum(Range("D4:
D36"))
Range("B1").Value=Application.WorksheetFunction.CountA(Columns("A"))‘Range("A:
A")也可表示A列
EndSub
7、即然能求出A列存放数据的行数了,那么如何让程序自动在最好一行填入求得的和呢?
原来是直接range("a21")=...现在不这样做,要自动识别最后一行然后在这一行填入求和
(1)’如果只是求前20行的和放在最后一行:
Sub矩形1_单击()
DimiAsInteger
DimYYYAsInteger
Fori=1To20
Sheets("sheet1").Cells(i,1)=i
Next
YYY=Application.WorksheetFunction.CountA(Columns("A"))
Cells(YYY+1,1)=Application.WorksheetFunction.Sum(Range("A1:
A20"))
EndSub
‘如果有空行,那么就用RANGE(A65536).END(XLUP).ROW来判断最后一行的行号
(2)’如果是对A列所有的都求和:
Sub矩形2_单击()
DimiAsInteger
DimYYYAsInteger
Fori=1To20
Sheets("sheet1").Cells(i,1)=i
Next
YYY=Application.WorksheetFunction.CountA(Columns("A"))
Cells(YYY+1,1)=Application.WorksheetFunction.Sum(Range(Cells(1,1),Cells(YYY,1)))
EndSub
在本例中是增加了个整数变量YYY,为什么要命名它为整数,是因为单元格个数是以整数表示的,没有听说过第1.2个单元格吧。
把A列的非空单元格个数赋给YYY,然后在后面的程序就是以调用它了。
补充:
Sum(Range(Cells(1,1),Cells(YYY,1)))是变动的单元格求和;RANGE(CELLS(),CELLS())是表示一个区域,比如Range(cells(1,1),cells(20,1))和Range("a1:
a20")是一样的,为什么要这样表示是因为CELLS表示单元格时可以加入变量。
COLUMN是指列,COLUMNS是指列的集合
ROW是表示行,ROWS是行的集合
如果用Sheets("sheet1").columns.select会选定所有列即整个工作表
8、宏的调用
如果是调用本工作薄的宏,直接输入“宏”的本名”
如果是调动其他工作薄的宏,则要用Application.run"123.xls"!
aaa
‘aaa是工作薄123中的宏,只有123.xls工作薄打开时才能调用。
第二期:
进阶操作VBA
1、要求做一个按纽,执行程序后在B1:
B15填入101至115的数值,并在最后一行的单元格求和
Sub按钮1_单击()
DimiAsInteger
Fori=1To15
Sheets("Sheet1").Cells(i,2)=i+100
Next
Range("b16").Value=Application.WorksheetFunction.Sum(Range("b1:
b15"))
EndSub
2、在上题的基础上,’求B列>106数的个数(包括刚才求单元格B16),并用对话框的形式显示出来
Sub矩形1_单击()
Fori=1ToRange("B65536").End(xlUp).Row
IfCells(i,2)>106Then
K=K+1
EndIf
Next
MsgBox"大于106数值个数有"&K&"个",1+64,"统计信息"
EndSub
补充:
Range("B65536").End(xlUp).Row是指B列最后一个非空单元格,END(XLUP)是向上数第一个非空单元格,为了找到最下面的非空单元格,当然要从RANGE("B65536")开始向上找了。
如选取Sheet1第一行有内容单元格区域(假设A1不为空):
sheets("sheet1").range("a1",range("a1").end(xltoright)).select
选取B列有内容单元格区域:
(假设B1不为空):
sheets("sheet1").range("B1",range("B65536").end(XLUP)).select
MSGBOX有时带(),比如AAA=MSGBOX()这种情况下可以取到用户点击对话框按纽的返回值,以确定下一步该怎么做;而不带括号只是提示的作用,不能取得返回的值
MsgBox函数:
MsgBox("对话框中的提示信息",buttons,title,helpfile,context)
提示语句:
仅有的一个必需的参数。
最大长度大约为1024个字符。
如内容超过一行,则可以在每一行之间用回车符(Chr(13))、换行符(Chr(10))或是回车与换行符的组合(Chr(13)&Chr(10))将各行分隔开来。
Buttons可以是由下列列表中的一个或多个,可将这些数字相加以生成buttons参数值。
省略时值为0。
VbOKOnly=0:
只显示OK按钮
VbOKCancel=1:
显示OK及Cancel按钮
VbAbortRetryIgnore=2:
显示Abort、Retry及Ignore按钮
VbYesNoCancel=3:
显示Yes、No及Cancel按钮
VbYesNo=4:
显示Yes及No按钮
VbRetryCancel=5:
显示Retry及Cancel按钮
VbCritical=16:
显示CriticalMessage图标
VbQuestion=32:
显示WarningQuery图标
VbExclamation=48:
显示WarningMessage图标
VbInformation=64:
InformationMessage图标
vbDefaultButton1=0:
第一个按钮是缺省值
vbDefaultButton2=256:
第二个按钮是缺省值
vbDefaultButton3=512:
第三个按钮是缺省值
vbDefaultButton4=768:
第四个按钮是缺省值
vbApplicationModa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 入门 VBA
![提示](https://static.bdocx.com/images/bang_tan.gif)