云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 2007VBA教程

2007VBA教程

  • 62 次阅读
  • 3 次下载
  • 2025/6/16 22:50:20

Excel 2007 VBA 教程

End Sub 三、代码调试

代码调试是一项繁琐的工作,我在编写“Excel完美工具箱”插件时,代码调试有时从晚上11点到早上三四点,长达4-5个小时的调试,当然在调试的时要修改一些代码,代码调试同时也提高自己编程水平,这个我深有体会,如设置断点,在本地窗口查看各变量的情况,然后找到原因在那,在第一讲时,我们简单提过一些,VBA编辑环境中,工作模式可分为三种,设计模式,也就是我们正常编辑代码时,运行模式,就是F5和F8运行时的状态,最后一种是中断模式,当程序遇到错误是程序会自动停止进入中断模式。设置断点,当程序运行到断点处,也会进入中断模式。下面我们讲几种调试的方法 1) 逐语句运行 A. 把光标定位到某一过程的任何一句里,然后按一下F8就会从第一句开始,有黄色颜色标示着第一行,

再按一下F8,黄色颜色从第一行跑到了第二行。也就是每按一次F8就执行一行代码。此时我们就可以查看各变量的情况便于我们查找错误。但逐语句有时太慢了,特别是多层循环语句,我们可以到调试菜单,运行到光标处。当然也可以用“设置断点”下面我们讲解它 B. 设置断点

1. 设置断点的方法有

a) 直接在你要设置断点那一句代码左边边框处,单击一下左键,如图图 14

图 14

b) 11把光标定位到你要设置断点的那一行里,然后按一下F9就可以了 2. 清除断点的方法

a) 直接用左键单击代码边框处那红色圆点,就清除了那一行的断点 b) 如果设置断点多的化,调试菜单下的清除所有断点命令。 3. 设置断点后怎样运行代码

a) 把光标定位到过程中的某一行代码处按快捷F5,再按一下F5就运行到下一个断点。 4. 查看变量情况

a) 把光标移到变量就会显示变量的值,如15

图 15

b) 11在本地窗口查看各变量的情况,这种方法我经常用到,如图

图 16

第 22 页 共 52 页

Excel 2007 VBA 教程

第七讲 工作表对象

一. 工作表的引用

1. 以名称方式引用:Worksheets (\工作表名称\,Worksheets是工作表的集合,包括所有工作表。

(1) 实例

Sub test1() '这是用名称来引用工作表名

Worksheets(\总表\佛山小老鼠\End Sub

2. 以索引号方式引用:Worksheets(数字)或者Sheets(数字),这两者的区别在前面的课程里提过,Sheets

也是工作表的集合,把其它的工作表也包括在内,如图表工作表,宏表工作表。而Worksheets只包括我平常操作的工作表。如Sheet1,Sheet2 (1) 实例

Sub test2() '这是用索引号来引用工作表名

On Error Resume Next '目的是为了防止此工作簿中没有“佛山小老鼠”这个工作表报错 Application.DisplayAlerts = False '屏蔽询问对话框

Worksheets(\佛山小老鼠\删除“佛山小老鼠”这个工作表 Application.DisplayAlerts = True '打开“询问对话框”

Sheets.Add After:=Worksheets(Sheets.Count) '在最后一张工作表后插入一张新工作表 Worksheets(Sheets.Count).Name = \佛山小老鼠\把最后一张工作表改为“佛山小老鼠” End Sub

3. 其它方式的引用

(1) 用ActiveSheet引用

Sub test3() '用ActiveSheet引用

MsgBox \活动工作表的名字是:\End Sub

二. 添加工作表

1. 添加工作表的方法是Add,其表达式Add(Before/After,Count,Type)。Before前面,After后面,Count

插入的数量,Type是插入的类型,如正常工作表Xlworksheet,图表工作表Xlchart,还有宏表工作表这里就不多说了。如果省略第二参,第三参数就会插入一张正常工作表 (1) 实例 在第一张工作表前面插入5张工作表

Sub test4() '在第一张工作表前面插入5张工作表 Sheets.Add Before:=Worksheets(1), Count:=5 End Sub

三. 删除工作表

1. 按名称来删除 Worksheets(工作表名称).Delete 记得给工作表名加双引号

2. 按索引号来删除 Worksheets(数字).Delete 这个数字就是我们在工作簿看到工作表位置。 3. 用代码删除工作表,会弹出一个“询问对话框”如图 17

图 17

4. 解决询问对话框的问题

其实前面许多实例里我都用了,只是没有和大家说详细,这次和大家讲清楚,用了这下面的代码,

第 23 页 共 52 页

Excel 2007 VBA 教程

Application.DisplayAlerts = False '屏蔽询问对话框 Worksheets(1).Delete '删除第一个工作表

Application.DisplayAlerts = True '打开“询问对话框” 5. 至少要保留一张可见工作表 6. 实例 删除第一个工作表

Sub test1() '会弹出询问对话框的 Worksheets(1).Delete End Sub

Sub test2() '不会弹出询问对话框的 Application.DisplayAlerts = False Worksheets(1).Delete

Application.DisplayAlerts = True End Sub

四. 实例 提取各工作表名制作目录

Sub 提取工作表名()

Dim i As Integer '定义i为整型变量

On Error Resume Next '防止工作簿里没有目录工作表,在删除时报错 Application.DisplayAlerts = False '关闭询问对话框 Worksheets(\目录\删除目录工作表

Application.DisplayAlerts = True '打开询问对话框

Sheets.Add before:=Sheets(1) '在第一个工作表前插入一张新的工作表 Sheets(1).Name = \目录\把第一个工作表取名为“目录”

Cells(1, 1) = \目录\在目录工作表中的A1单元写于“目录”两字

For i = 2 To Worksheets.Count 'Worksheets.Count统计工作的总数,整句代码的意思遍历每一个作表

Cells(i, 1) = Sheets(i).Name '依次把工作表的名字写A列 Next i '下一个i End Sub Sub 清空()

Worksheets(\目录\ Worksheets(\目录\ End Sub

五. 实例 提取各工作表名制作目录且还要建立超链接

Sub 提取工作表名()

Dim i As Integer '定义i为整型变量

On Error Resume Next '防止工作簿里没有目录工作表,在删除时报错 Application.DisplayAlerts = False '关闭询问对话框 Worksheets(\目录\删除目录工作表

Application.DisplayAlerts = True '打开询问对话框

Sheets.Add before:=Sheets(1) '在第一个工作表前插入一张新的工作表 Sheets(1).Name = \目录\把第一个工作表取名为\目录\

Cells(1, 1) = \目录\在目录工作表中的A1单元写于\目录\两字

For i = 2 To Worksheets.Count 'Worksheets.Count统计工作的总数,整句代码的意思遍历每一个作表

Cells(i, 1) = Sheets(i).Name '依次把工作表的名字写A列

ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 1), Address:=\

第 24 页 共 52 页

Excel 2007 VBA 教程

SubAddress:=Worksheets(i).Name & \ '由代码过长,选打一个_然后加一个空格,这是把代码分行

' 根据录制的代码修改,把选中的Selection改为Cells(i,1),把 \改为Worksheets(i).Name & \,一定要是记得是工作表名

'所以加了一个Name属性,把“佛山小老鼠”改为Cells(i, 1).Value Next i '下一个i End Sub Sub 清空()

Worksheets(\目录\ Worksheets(\目录\ End Sub

'这是我们在A1单元格输入“佛山小老鼠”之后录制的一个给它添加超链接的宏得到的宏代码 'Sub Macro1() ''

'' Macro1 Macro '' ' ''

' ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=\' \佛山小老鼠\'End Sub

六. 实例 提取工作表名制目录且要建立超链接还要添加一个“返回目录”的按钮

Sub 提取工作表名()

Dim i As Integer '定义i为整型变量

On Error Resume Next '防止工作簿里没有目录工作表,在删除时报错 Application.DisplayAlerts = False '关闭询问对话框 Worksheets(\目录\删除目录工作表

Application.DisplayAlerts = True '打开询问对话框

Sheets.Add before:=Sheets(1) '在第一个工作表前插入一张新的工作表 Sheets(1).Name = \目录\把第一个工作表取名为\目录\

Cells(1, 1) = \目录\在目录工作表中的A1单元写于\目录\两字

For i = 2 To Worksheets.Count 'Worksheets.Count统计工作的总数,整句代码的意思遍历每一个作表

Worksheets(1).Activate '一定要加上这一句,由于我们为了添加按钮时,把添加按钮的那个工作表设置为活动工作表,添加之后还要把“目录”工作表设置为当前工作表 Cells(i, 1) = Sheets(i).Name '依次把工作表的名字写A列

ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 1), Address:=\

SubAddress:=Worksheets(i).Name & \ '由代码过长,先打一个_然后加一个空格,这是把代码分行

' 根据录制的代码修改,把选中的Selection改为Cells(i,1),把 \改为Worksheets(i).Name & \,一定要是记得是工作表名

'所以加了一个Name属性,把“佛山小老鼠”改为Cells(i, 1).Value ' 添加“返回目录”按钮

'因为2007录制不了艺术字代码,2003和2010可以,下面的代码是我在2003版里录制修改后的 Worksheets(i).Shapes.AddTextEffect(msoTextEffect32, \返回目录\黑体\ msoTrue, msoFalse, 600#, 20.25).Select

第 25 页 共 52 页

搜索更多关于: 2007VBA教程 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

Excel 2007 VBA 教程 End Sub 三、代码调试 代码调试是一项繁琐的工作,我在编写“Excel完美工具箱”插件时,代码调试有时从晚上11点到早上三四点,长达4-5个小时的调试,当然在调试的时要修改一些代码,代码调试同时也提高自己编程水平,这个我深有体会,如设置断点,在本地窗口查看各变量的情况,然后找到原因在那,在第一讲时,我们简单提过一些,VBA编辑环境中,工作模式可分为三种,设计模式,也就是我们正常编辑代码时,运行模式,就是F5和F8运行时的状态,最后一种是中断模式,当程序遇到错误是程序会自动停止进入中断模式。设置断点,当程序运行到断点处,也会进入中断模式。下面我们讲几种调试的方法 1) 逐语句运行 A. 把光标定位到某一过程的任何一句里,然后按一下F8就会从第一句开始,有黄色颜色标示着第一行,再按一下F8,黄色颜色从第一

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com