excel vba入门教程

上传人:小** 文档编号:94146011 上传时间:2019-08-02 格式:PDF 页数:48 大小:851.46KB
返回 下载 相关 举报
excel vba入门教程_第1页
第1页 / 共48页
excel vba入门教程_第2页
第2页 / 共48页
excel vba入门教程_第3页
第3页 / 共48页
excel vba入门教程_第4页
第4页 / 共48页
excel vba入门教程_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《excel vba入门教程》由会员分享,可在线阅读,更多相关《excel vba入门教程(48页珍藏版)》请在金锄头文库上搜索。

1、 目 录 第一章 VBA 语言基础 . 1 第一节 标识符 . 1 第二节 运算符 . 1 第三节 数据类型 . 1 第四节 变量与常量 . 2 第五节 数组. 2 第六节 注释和赋值语句 . 2 第七节 书写规范 . 2 第八节 条件语句 . 3 第九节 循环语句 . 4 第十节 其他类语句和错误语句处理 . 5 第十一节 过程和函数 . 6 第十二节内部函数 . 7 第二章第二章 Excel VBA 常用对象之使用常用对象之使用 . 9 第一节 文件的操作 . 9 第二节 工作表操作 . 24 第三节 单元格和区域操作 . 25 第四节 图表的操作 . 29 第三章第三章 Excel VB

2、A 高级使用高级使用 . 33 第一节 Win API 的使用 . 33 第二节 Excel VBA 程序的保密. 37 第四章第四章 Excel VBA 优化优化 . 43 1 第一章 VBA 语言基础 第一节 标识符 一定义 标识符是一种标识变量、常量、过程、函数、类等语言构成单位的符号,利用它可以完成对 变量、常量、过程、函数、类等的引用。 二命名规则 1) 字母打头,由字母、数字和下划线组成,如 A987b_23Abc 2) 字符长度小于40,(Excel2002 以上中文版等,可以用汉字且长度可达254 个字符) 3) 不能与VB 保留关键字重名,如public, private,

3、dim, goto, next, with, integer, single 等 第二节 运算符 定义:运算符是代表VB 某种运算功能的符号。 1)赋值运算符 = 2)数学运算符 PWD=12345“) (4).打开表或建立表的子表 A. 建立表的子表 Set rs = db.OpenRecordset(“select * from 表名“) B. 打开表 Set RS = DB.OpenRecordset(“表名“, dbOpenDynaset) Opendatabase 方法是打开数据库并返回此数据库的database 对象,其语法如下: Set database 的对象变量opendat

4、abase (路径及数据库名称,除外性,只读) 除外性:由true 和false 值所构成,当值为true 时代表仅允许唯一的使用者使用数据库。 只读:由true 和false 值所构成,为true 代表数据库仅提供读取的服务 Openrecordset 方法用来创建一个新的recordset 对象,语法为: Set recordset 对象变量数据库变量.openrecordset(来源,种类) recordset 种类有5 种,分别为:表(table)、动态集(dynaset)、快照集(snapshot)、动 态(dynamic)、正 向(forward-only),_其中常用的时动态集(

5、dynaset)实际上是引用一个或多个表 中数据记录的集合,是功 能最强的数据记录集合类型,也是默认值。 (5). 操作数据库记录 15 对记录的操作就是使用记录集的对象方法和属性来实现,特附录常用属性和方法如下。 记录集对象的属性和方法: rs.Recordcount 属性 用来记录目前数据记录的数量,如判断数据库是否为空 rs.EOF 属性 是否是记录的尾 rs.BOF 属性 是否是记录的头 rs.Nomatch 属性 返回上次查找成功与否 rs.Move n 方法 移动到第n 条记录 rs.Movenext 方法 移动到下一条记录 rs.MovePrevious 方法 移动到上一条记录

6、rs.Movefirst 方法 移动到第一条记录 rs.Lastfirst 方法 移动到最后一条记录 rs.Delete 方法 删除当前记录 rs.Edit 方法 修改当前记录 (步骤为三步: 1. 用edit 方法设置为修改状态;2. 将数据分别赋 到记录的各字 段;3.用Updata 方法,把记录更新到数据库中) rs.AddNew 方法 添加记录 (添加记录分三步: 1. 用AddNew 方法添加一个新的空白记录; 2. 将数据分别赋到记录的各 字段;3.用 Updata 方法,把记录更新到数据库中去) rs.Updata 方法 更新内容到数据库中 rs.Findfirst “字段名=

7、“ & “查找内容” & “ “ 方法 查找记录中字段与内容相配的首条记录 rs.Findnext 方法 查找下一个匹配记录 rs.FindLast 方法 查找最后一个匹配记录 rs.FindPrevious 方法 查找前一个匹配记录 rs.Close 方法 关闭 记录集关闭链接 字段集的属性方法: rs. Fields.Count 属性 字段数目 rs. Fields(n) 第n+1 个字段, Fields(0) 表示第一个字段 rs. Fields.Delete(Name As String) 方法 删除字段 rs. Fields.Append (Object As Object) 方法

8、添加字段 rs. Fields.Refresh 方法 更新 字段的属性方法: rs. Fields(n).Name rs. Fields(n).Size rs. Fields(n).Type rs. Fields(n).Fieldsize rs. Fields(n).value 示例: 打开一个数据库,建立浏览, 查询, 修改, 删除, 添加等功能。 Option Explicit Public totalRecs As Long, curRecNo As Long 用于记住 总记录数 和 当前记录号 Public DB1 As Database, RS1 As Recordset Priva

9、te Sub UserForm_Initialize() 窗口显示 Set DB1 = OpenDatabase(ThisWorkbook.Path & “pallet.mdb“) Set RS1 = DB1.OpenRecordset(“pallet“, dbOpenDynaset) 16 If RS1.EOF And RS1.BOF Then MsgBox “Database is Null.“ cmdExit_Click Else RS1.MoveLast 指针移动到最后记录,以便统计记录总数 RS1.MoveFirst totalRecs = RS1.RecordCount curRe

10、cNo = 1 SetData 设置窗口参数,按钮是否可用 End If End Sub Private Sub cmdFirst_Click() 第一条记录 RS1.MoveFirst curRecNo = 1 SetData End Sub Private Sub cmdLast_Click() 最后一条记录 RS1.MoveLast curRecNo = totalRecs SetData End Sub Private Sub cmdPrevious_Click() 前一条记录 RS1.MovePrevious curRecNo = curRecNo - 1 SetData End S

11、ub Private Sub cmdNext_Click() 下一条记录 RS1.MoveNext curRecNo = curRecNo + 1 SetData End Sub Private Sub cmdAdd_Click() 增加一条记录 Dim i As Integer RS1.AddNew For i = 1 To 5 RS1.Fields(i) = Me.Controls(“txt“ & i) Next i RS1.Update totalRecs = totalRecs + 1 curRecNo = totalRecs RS1.MoveLast SetData End Sub

12、Private Sub cmdDelete_Click() 删除当前记录 17 RS1.Delete RS1.MoveNext If RS1.EOF = True Then RS1.MovePrevious 指针到底就朝前移 curRecNo = totalRecs - 1 End If totalRecs = totalRecs - 1 SetData End Sub Private Sub cmdModify_Click() 修改当前记录 Dim i As Integer RS1.Edit For i = 1 To 5 RS1.Fields(i) = Me.Controls(“txt“ &

13、 i) Next i RS1.Update End Sub Private Sub cmdFind_Click() 查找记录,与第一个文本框内容相等 RS1.FindFirst “palletno=“ & txt1.Text & “ If RS1.NoMatch Then MsgBox “Sorry, find Nothing!“ Else curRecNo = RS1.AbsolutePosition + 1 SetData End If End Sub Private Sub cmdClear_Click() 清除显示内容 Dim i As Integer For i = 1 To 5 M

14、e.Controls(“txt“ & i) = “ Next i End Sub Private Sub cmdExit_Click() 退出窗口 RS1.Close DB1.Close Unload Me End Sub Sub SetData() 窗口数据设置 Dim i As Integer txtCurRecNo.Text = curRecNo cmdFirst.Enabled = curRecNo 1 cmdPrevious.Enabled = curRecNo 1 cmdLast.Enabled = curRecNo 1 CommandButton2.Enabled = curRe

15、cNo 1 CommandButton3.Enabled = curRecNo “ Then 存在就打开 Workbooks.Open ThisWorkbook.Path & “filename.xls“ Else 文件不存在就警告 MsgBox “文件不存在“, vbOKOnly, “警告“ End If 4.2) 搜查文件 使用Application.FileSearch 方法 示例如下: pp = “D:Temp“: ff = 0 With Application.FileSearch .NewSearch .LookIn = pp .Filename = “prn*.tmp“ 查找文件

16、 prn*.tmp *为指代符 If .Execute() 0 Then ff = .FoundFiles.Count End With MsgBox pp & “ 找到 “ & ff & “ 个档案!“ 4.3) 删除文件 使用 kill 方法 示例如下: kill(“c:mytest.txt”) 4.4) 取得文件日期属性 使用 FileSystem object 对象实现, 示例函数如下 Function FileDate(filespec, datetype) Dim fs, f, s Set fs = CreateObject(“Scripting.FileSystemObject“) Set f = fs.GetFile(filespec) Select Case datetype Case 1: FileDate = f.DateCreated 档案建立日期 Case 2: FileDate = f.DateLastAccessed 存取日期 Case 3: F

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

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