lt_zzy 发表于 2005-4-12 13:16:18

[教学]:EXCEL VBA 入门

新建一个EXCEL文件,用绘图插入一个矩形,点击右键,在菜单中点击指定宏,再点击新建。

会出现

Sub 矩形1_单击()


End Sub

lt_zzy 发表于 2005-4-12 13:16:40

在两句中间加入Sheets("sheet1").Range("a1") = 100

Sub 矩形1_单击()
Sheets("sheet1").Range("a1") = 100
End Sub

lt_zzy 发表于 2005-4-12 13:17:21

再加一句:

Sub 矩形1_单击()
Sheets("sheet1").Range("a1") = 100
Sheets("sheet1").Cells(2, 1) = 200
End Sub


这是两种单元格的基本录入方法,都懂吗?

lt_zzy 发表于 2005-4-12 13:18:45

再输入下面的循环程序

Sub 矩形1_单击()
Dim i As Integer
For i = 1 To 20
Sheets("sheet1").Cells(i, 1) = i
Next
End Sub

这个程序的结果A1至A20 的值分别为1到20

lt_zzy 发表于 2005-4-12 13:20:23

下面解释一下

DIM变量名称AS   变量类型



是声名变量用的    就象是平时别人给你介绍客人:他是干什么的,只是介绍了我们才能针对性的谈话。变量也一样,我们给程序介绍:这个是整数型,你没必要把他当作其他类型对待,这样系统对你声明的变量作整数型对待了,如果不介绍系统还要花费一定的内存去判断新出现的变量是什么?结果是多占用内存影响运算速度




Dim iAsInteger          中间没有逗号

lt_zzy 发表于 2005-4-12 13:21:00

补充一点



单元格在VBA的表示方法:



1、Range("单元格地址")   如Range("a1")   即为A1单元格



2、CELLS(行,列)   如CELLS(1,1)也为A1单元格,CELLS(2,1)为 A2单元格



工作表在VBA中表示方法:sheets("工作表名")

lt_zzy 发表于 2005-4-12 13:22:30

如果上面的明白,再加一句,是如何在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"))

lt_zzy 发表于 2005-4-12 13:28:16

问题:就是每个函数前都要加Application.WorksheetFunction.吗?
回答:不是每一个函数的前面都要加Application.WorksheetFunction,有些函数不用加,在编辑器中输入VBA后再输入一个点会弹出一个列表,列表中函数在使用的时候不用加Application.WorksheetFunction,可以直接使用。

lt_zzy 发表于 2005-4-12 13:29:21

习题

请在工作表SHEET1的D4:D36单元格中填充4-36的数值,并在D37单元格中求和

lt_zzy 发表于 2005-4-12 18:33:02

习题答案:
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

lt_zzy 发表于 2005-4-12 18:34:23

思考题:

在原来的基上 求A列的非空单元格个数,把结果输入到B1中

lt_zzy 发表于 2005-4-12 18:37:04

问题:

在VBA中A列怎么表示?

Columns(1)                     或
Range("A:A")

lt_zzy 发表于 2005-4-12 18:40:02

思考题答案:

Sub 矩形1_单击()

Range("B1").Value = Application.WorksheetFunction.CountA(Range("a:a"))

End Sub

lt_zzy 发表于 2005-4-12 18:42:37

问题与解答:

可是再在A列加个数字,B1不会自动更新,怎么回事??

这个需要执行程序后才能计算的,不象在EXCEL工作表中的公式

lt_zzy 发表于 2005-4-12 18:46:24

做了这么多,我想将工作表上的内容清除掉,所以我录制了一段宏。主要内容如下:

Range("A1:A22").Select
    Selection.ClearContents
页: [1] 2 3 4 5
查看完整版本: [教学]:EXCEL VBA 入门