[教学]:EXCEL VBA 入门
新建一个EXCEL文件,用绘图插入一个矩形,点击右键,在菜单中点击指定宏,再点击新建。会出现
Sub 矩形1_单击()
End Sub 在两句中间加入Sheets("sheet1").Range("a1") = 100
Sub 矩形1_单击()
Sheets("sheet1").Range("a1") = 100
End Sub 再加一句:
Sub 矩形1_单击()
Sheets("sheet1").Range("a1") = 100
Sheets("sheet1").Cells(2, 1) = 200
End Sub
这是两种单元格的基本录入方法,都懂吗? 再输入下面的循环程序
Sub 矩形1_单击()
Dim i As Integer
For i = 1 To 20
Sheets("sheet1").Cells(i, 1) = i
Next
End Sub
这个程序的结果A1至A20 的值分别为1到20 下面解释一下
DIM变量名称AS 变量类型
是声名变量用的 就象是平时别人给你介绍客人:他是干什么的,只是介绍了我们才能针对性的谈话。变量也一样,我们给程序介绍:这个是整数型,你没必要把他当作其他类型对待,这样系统对你声明的变量作整数型对待了,如果不介绍系统还要花费一定的内存去判断新出现的变量是什么?结果是多占用内存影响运算速度
Dim iAsInteger 中间没有逗号 补充一点
单元格在VBA的表示方法:
1、Range("单元格地址") 如Range("a1") 即为A1单元格
2、CELLS(行,列) 如CELLS(1,1)也为A1单元格,CELLS(2,1)为 A2单元格
工作表在VBA中表示方法:sheets("工作表名") 如果上面的明白,再加一句,是如何在A21计算出A1:A20的和
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"))
End Sub
在VBA不直接支持在EXCEL工作表中的一些函数,如果要调用就必须加上Application.WorksheetFunction
SUM求和语法和工作表中的一样,但表示不能直接SUM(A1:A20),要用VBA的表示方法
SUM(Range("a1:a20")) 问题:就是每个函数前都要加Application.WorksheetFunction.吗?
回答:不是每一个函数的前面都要加Application.WorksheetFunction,有些函数不用加,在编辑器中输入VBA后再输入一个点会弹出一个列表,列表中函数在使用的时候不用加Application.WorksheetFunction,可以直接使用。 习题
请在工作表SHEET1的D4:D36单元格中填充4-36的数值,并在D37单元格中求和 习题答案:
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"))
End Sub 思考题:
在原来的基上 求A列的非空单元格个数,把结果输入到B1中 问题:
在VBA中A列怎么表示?
Columns(1) 或
Range("A:A") 思考题答案:
Sub 矩形1_单击()
Range("B1").Value = Application.WorksheetFunction.CountA(Range("a:a"))
End Sub 问题与解答:
可是再在A列加个数字,B1不会自动更新,怎么回事??
这个需要执行程序后才能计算的,不象在EXCEL工作表中的公式 做了这么多,我想将工作表上的内容清除掉,所以我录制了一段宏。主要内容如下:
Range("A1:A22").Select
Selection.ClearContents