带你入门VBA(第一讲)

上传人:宝路 文档编号:3820919 上传时间:2017-08-12 格式:DOC 页数:14 大小:104KB
返回 下载 相关 举报
带你入门VBA(第一讲)_第1页
第1页 / 共14页
带你入门VBA(第一讲)_第2页
第2页 / 共14页
带你入门VBA(第一讲)_第3页
第3页 / 共14页
带你入门VBA(第一讲)_第4页
第4页 / 共14页
带你入门VBA(第一讲)_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《带你入门VBA(第一讲)》由会员分享,可在线阅读,更多相关《带你入门VBA(第一讲)(14页珍藏版)》请在金锄头文库上搜索。

1、带你入门 VBA(2004 第一期)马上新建一个 EXCEL 文件,用绘图插入一个矩形,点击右键,在菜单中点击指定宏,再点击新建。 会出现 Sub 矩形 1_单击() End Sub在两句中间加入 Sheets(sheet1).Range(a1) = 100Sub 矩形 1_单击() Sheets(sheet1).Range(a1) = 100 End Sub再加一句:Sub 矩形 1_单击() Sheets(sheet1).Range(a1) = 100Sheets(sheet1).Cells(2, 1) = 200 End Sub这是两种单元格的基本录入方法,都懂吗?再输入下面的循环程序S

2、ub 矩形 1_单击() Dim X As Integer 声明 X 为整数型变量For X= 1 To 20 X 的值为从 1 到 20 循环Sheets(sheet1).Cells(x, 1) = x 单元 CELLS(X,1)的值班等于 X 值 Next End Sub刚才我粘贴错了 Sub 矩形 1_单击()Dim i As Integer For i = 1 To 20 Sheets(sheet1).Cells(i, 1) = i NextEnd Sub这个程序的结果 A1 至 A20 的值分别为 1 到 20Dim, As, Integer 是什么意思?是涵数吗?F1 里好象找不到

3、DIM 变量名称 AS 变量类型 是声名变量用的 就象是平时别人给你介绍客人:他是干什么的,只是介绍了我们才能针对性的谈话。变量也一样,我们给程序介绍:这个是整数型,你没必要把他当作其他类型对待,这样系统对你声明的变量作整数型对待了,如果不介绍系统还要花费一定的内存去判断新出现的变量是什么?结果是多占用内存影响运算速度 Dim i As Integer 中间没有逗号 补充一点单元格在 VBA 的表示方法:1、Range(单元格地址) 如 Range(a1) 即为 A1 单元格2、CELLS(行,列) 如 CELLS(1,1)也为 A1 单元格,CELLS(2,1 )为 A2 单元格工作表在 V

4、BA 中表示方法:sheets(工作表名)如果刚才的明白,再加一句,是如何在 A21 计算出 A1:A20 的和Sub 矩形 1_单击() Dim i As IntegerFor i = 1 To 20 Sheets(sheet1).Cells(i, 1) = i NextRange(a21).Value = Application.WorksheetFunction.Sum(Range(a1:a20) End Sub在 VBA 不直接支持在 EXCEL 工作表中的一些函数,如果要调用就必须加上Application.WorksheetFunctionSUM 求和语法和工作表中的一样,但表示不

5、能直接 SUM(A1:A20),要用 VBA 的表示方法SUM(Range(a1:a20) 就是每个函数前都要加 Application.WorksheetFunction.吗?如果是单个调用必须加如果是多个调用就可以用 WITH 语句省去后面的如 Sub 矩形 1_单击() Dim i As IntegerFor i = 1 To 20 Sheets(sheet1).Cells(i, 1) = i Next With Application.WorksheetFunctionRange(a21).Value = .Sum(Range(a1:a20) 注意 SUM 前面要有个点才行 Range

6、(a22).Value = .Average(Range(a1:a20) End With End Sub?如 Sub 矩形 1_单击() Dim i As Integer For i = 1 To 20 Sheets(sheet1).Cells(i, 1) = i Next Range(a21).Value = Application.WorksheetFunction.Sum(Range(a1:a20) Range(a22).Value = Application.WorksheetFunction.Average(Range(a1:a20) End Sub我是这样的,也行。?Sub 矩形

7、 1_单击() Dim i As Integer For i = 4 To 36 Sheets(sheet1).Cells(i, 4) = i Next Range(d37).Value = Application.WorksheetFunction.Sum(Range(d4:d36) End Sub我是用前面的来改的,不知算不算?但要我一个一个单词输入,我想还要过一段时间。已运行正确!3Q?以下是引用 linvv 在 2004-10-3 17:44:00 的发言: Sub 矩形 1_单击() Dim i As Integer For i = 4 To 36 Sheets(sheet1).Ce

8、lls(i, 4) = i Next Range(d37).Value = Application.WorksheetFunction.Sum(Range(d4:d36) Range(B1).Value = Application.WorksheetFunction.CountA(Range(a1:a40000) End Sub忘了整列 A 怎么表示了,$A$吗?下面两种都可以 Range(B1).Value = .CountA(Columns(1) Range(B2).Value = .CountA(Range(A:A) ?Sub 矩形 1_单击() Dim i As Integer For

9、 i = 4 To 36 Sheets(sheet1).Cells(i, 4) = i Next Range(d37).Value = Application.WorksheetFunction.Sum(Range(D4:D36) Range(B1).Value = Application.WorksheetFunction.CountA(Columns(A) End Sub是这样吗?好难输呀.啊!怎么也不等我了,你们都比我快,看来我落后了.!Range(A1:A22).Select Selection.ClearContents 这两句合为一句应行了 Range(A1:A22).ClearC

10、ontents 在程序中要尽量少用 SELECT,这样会影响速度,程序大的时候也很不方便,(录制的宏常带SELECT)请问 Columns 是什么意思,也是一种表示法吗COLUMN 是指列,COLUMNS 是指列的集合 ROW 是表示行,ROWS 是行的集合 如果用 Sheets(sheet1).columns.select 会选定所有列即整个工作表即然能求出 A 列存放数据的行数了,那么如何让程序自动在最好一行填入求得的和呢?原来是直接 range(a21)=.现在要求不能这样做,要自动识别最后一行然后在这一行填入求和结果先想一想稍后公布答案答案:如果只是求前 20 行的和放在最后一行:Su

11、b 矩形 1_单击() Dim i As Integer Dim YYY As Integer For i = 1 To 20 Sheets(sheet1).Cells(i, 1) = i Next YYY = Application.WorksheetFunction.CountA(Columns(A) Cells(YYY + 1, 1) = Application.WorksheetFunction.Sum(Range(A1:A20) End Sub如果是对 A 列所有的都求和:Sub 矩形 2_单击() Dim i As Integer Dim YYY As Integer For i

12、= 1 To 20 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) End Sub 在本例中是增加了个整数变量 YYY,为什么要命名它为整数,是因为单元格个数是以整数表示的,没有听说过第 1.2 个单元格吧把 A 列的非空单元格个数赋给 YYY,然后在后面的程序就是以调用它了Sum(Range

13、(Cells(1, 1), Cells(YYY, 1) 是变动的单元格求和RANGE( CELLS(),CELLS()是表示一个区域比如 Range(cells(1,1),cells(20,1)和 Range(a1:a20)是一样的,为什么要这样表示是因为CELLS 表示单元格时可以加入变量楼主的方法真好!我对 VBA 有了初步的认识,现在有几个问题想问问楼主和 ZHYZ,烦请解答。多谢! 1、我知道的制作按钮的方法有二种: 一是用绘图工具中的图形,右键单击会弹出“指定宏.”可以指定宏或代码,而且编辑后马上可以使用,鼠标移至其上会出现小手形状; 二是用控件,右键单击会弹出“查看代码” 以编辑代

14、码,不能指定已有的宏,而且要使用这个按钮必须要退出保存文件再打开才能使用,这时鼠标移至其上会出现鼠标指针形状。而ZHYZ 制作了“添加数据”和“清除数据” 两个按钮,从样子看应该是用控件制作,因图形无法做出这样的按钮。而且单击右键会出现“设置控件格式” ,但奇怪的是鼠标移至其上会出现小手形状,可用图形的选择功能直接选择,且右健菜单中还有“指定宏”,这都是图形制作的特征,ZHYZ 制作的按钮兼具控件和图形制作的特点,还望 ZHYZ 助我解开疑团。 2、楼主在 38 楼的发言“ 可是再在 A 列加个数字,B1 不会自动更新为 22 是怎么回事?这个需要执行程序后才能计算的不象在 EXCEL 工作表

15、中的公式”,是不是指加入数字,B1自动更新,但后面的程序也没有做到这点啊?TO 求奇可是再在 A 列加个数字,B1 不会自动更新为 22 是怎么回事?这个需要执行程序后才能计算的不象在 EXCEL 工作表中的公式”,是不是指加入数字,B1 自动更新,但后面的程序也没有做到这点啊?SUB 语句,需要有个事件触发它,才能执行,就比如一个箱子,只有去搬、推等外力施加与它时,它才会动。设置个按纽目的就是为了执行 SUB 语句以下是引用 办公之星 在 2004-10-3 21:00:00 的发言: 这样是比看书省事多了。可是大家跟帖太多了,将来看起来太乱了。问一个最基本的问题:空格在单词、运算符、句子中

16、是否很重要,如果在一个地方多打几个空格会怎样?经常看到别人的程序中,前面好多好多的空格。程序里的字间矩多是程序自已调整的,如果程序太长才用空格+下划线来转行显示的?如果手工录入,这一段程序中就有很多的空格,不是吗?Sub 矩形 1_单击() Dim i As Integer For i = 4 To 36 Sheets(sheet1).Cells(i, 4) = i Next Range(d37).Value = Application.WorksheetFunction.Sum(Range(D4:D36) Range(B1).Value = Application.WorksheetFunction.CountA(Columns(A) E

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号