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

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

2007VBA教程

  • 62 次阅读
  • 3 次下载
  • 2025/6/16 10:59:41

Excel 2007 VBA 教程

Sheets(i).Select Sheets(i).Activate

ActiveSheet.Hyperlinks.Add Anchor:=Selection.ShapeRange.Item(1), Address:= _ \ Range(\ Next i '下一个i End Sub Sub 清空()

Dim Sp As Shape, sh As Worksheet

Worksheets(\目录\ For Each sh In Worksheets sh.Activate

For Each Sp In ActiveSheet.Shapes Sp.Delete Next Sp Next sh End Sub

第八讲 工作簿对象

一. 工作簿的引用方式

1. 以名称引用

(1). 实例

Sub test2() ' 把“汇总”工作簿打开

MsgBox Workbooks(\汇总.xlsm\End Sub

2. 以索号引用

(1). 实例

Sub test1()

MsgBox Workbooks(1).Name End Sub

3. Thiswokbook 表示代码所在的的工作簿

(1). 实例

Sub test3()

MsgBox ThisWorkbook.Name End Sub (2). 11

4. Activeworkbook 表示当前活动工作簿

(1). 实例

Sub test4()

MsgBox ActiveWorkbook.Name End Sub

二. 保存工作簿

1. 另存为的方法

(1). 实例 在桌面上新建一个工作簿,取名为“汇总”,且工作簿密码是1234

Sub test1()

第 26 页 共 52 页

Excel 2007 VBA 教程

Dim wb As Workbook '定义wb工作簿型对象变量 Set wb = Workbooks.Add '把新建的工作簿赋给wb With wb '处理工作簿wb

.SaveAs Filename:=\我的文档\\桌面\\汇总.xlsx\另存为桌面,取名为“汇总” .Password = \给工作簿 wb设置密码为1234 End With '结束处理 End Sub

三. 打开工作簿

1. 用Open方法,它的参数有许多,我现在只用了第一个参数:要打开的工作簿所在的路径,其它参数没有,

可以自己去看帮助。 (1). 实例 打开“F第八讲VBA对象”文件中的“汇总”工作簿

Sub test1()

Workbooks.Open Filename:=ThisWorkbook.Path & \汇总.xlsm\End Sub

四. 从不打开的工作簿里提取数据

1. 实例

Sub Test1()

Dim Wb As Workbook '定义Wb为工作簿对象型变量 Dim MyPth As String '定义MyPth为文本型变量

Application.ScreenUpdating = False '关闭屏幕刷新

MyPth = ThisWorkbook.Path & \数据源.xlsx\把数据源工作簿路径赋给MyPth Set Wb = GetObject(MyPth) '把返回路径上的文件引用且赋值给Wb

With Wb.Sheets(1).Range(\工作簿里工作表1和A1单元格相连的区域

Range(\把Wb工作簿里的工作表1数据写于活动工作表里以A1单元格为区域

'Rows.Count是2^20行,Columns.Count2^14列,它们的对象是 Wb.Sheets(1).Range(\,也就是起到复制整个工作表的作用 Wb.Close False '关才Wb工作簿,且不保存更改 End With '

Set Wb = Nothing '释放内存

Application.ScreenUpdating = True '打开屏幕刷新 End Sub

第九讲 事件

一. 事件分类

(1). 应用程序事件 经常在类模块中定义这种事件 (2). 工作簿事件 如工作簿的Open事件,一打开工作簿就就执行过程

Private Sub Workbook_Open() ?? End Sub

实例 一开工作作簿就问好 Private Sub Workbook_Open() MsgBox \佛山小老鼠你好!\End Sub (3). 工作表事件 如工作表里的Change事件,一改变工作表单元里的内容就触发,工作表事件用的用比

第 27 页 共 52 页

Excel 2007 VBA 教程

较多

a. Private Sub Worksheet_Change(ByVal Target As Range),一改变单元格内容就触发 ?? End Sub

b. Private Sub Worksheet_SelectionChange(ByVal Target As Range)一选择别的单元格就触发

?? End Sub

实例一 防止看错行

Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim Myrow As Integer '定义变量Integer为整型数据类型 Myrow = Target.Row 'Target当前活动单元格,取得其行号

Cells.Interior.ColorIndex = xlNone '把整个工作表的底纹设置为无,目的是为了删除上一次的

Rows(Myrow).EntireRow.Interior.ColorIndex = 8 '给Myrow这一整行添加底纹 End Sub

实例二 自动补齐卡号,由于卡号前面的是一样,只是后面的不一样,便不能用单元格格式设置 Private Sub Worksheet_Change(ByVal Target As Range) '工作表事件,一改变内容就发生 If Target.Column = 1 Then '如果活动单元格的列号是等于1,那么

If Target.Count <> 1 Then Exit Sub '又如果选中的不只是一个单元格,那么就退出运行

MyTart = Target.Value '把活动单元格的值赋给MyTarg Application.EnableEvents = False '关闭联动事件

Target = \& \& MyTart '在原来数据前面加6210260500059330 MyTart = \把变量MyTart清空

Application.EnableEvents = True '打开联动事件 End If

Columns(\列自动适合列宽 End Sub

实例三 在B列任意单元格输入任何文本后,A列与其所对应的单元格 自动显示出当天的日期 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 Then '如果当前单元格的列号2

If Target.Offset(0, -1) = \又如果A列对应的单元不为空且B列活动单元也不为空,那么

Target.Offset(0, -1) = Date '在A列对应的单元格输入当前日期 End If End If

Columns(1).AutoFit 'A列自动适合列宽 End Sub

(4). 其它事件

a. OnTime事件

表达式 Application.OnTime 开始时间, 过程名 结束时间 布尔值

解释如果省略第三参数,开始时间就是过程运行时间,如果没有省略,那第三参数就是过程运行时间,第四参数如果是False就是停止OnTime事件 实例 在A1单元格显示当前的时间且带有秒数的格式 Sub Mystar()

Range(\在A1单元格写于时间,用了Format函数,格

第 28 页 共 52 页

Excel 2007 VBA 教程

式用时分秒

Application.OnTime Now + TimeValue(\在原有的时间加一秒执行 End Sub

Sub MyStop()

On Error Resume Next '为什么要加一句防错语句,因为先前当没有执行Mystar过程,就会报错

Application.OnTime Now + TimeValue(\记得是第四个参数用了False,所以它前面还有二个逗号 End Sub b. OnKey事件

1. 表达式 Application.OnKey 快捷键, 过程名

a. 一些常用控制键的代码 Ctrl ^ Shift + Alt % ,其它的键要加{},而26个字母不

要加,如Ctrl+D这样表示\;再加Shift+F1这样表示\b. 实例 按快键Ctrl+F9,输入当天的星期 在普通模块里输入 Sub 输入星期()

Selection = Format(Now, \End Sub

Sub 打开快捷键()

Application.OnKey \输入星期\End Sub

Sub 关闭快捷键()

Application.OnKey \End Sub

在工作簿模块里输入

Private Sub Workbook_BeforeClose(Cancel As Boolean) Call 关闭快捷键 End Sub

Private Sub Workbook_Open() Call 打开快捷键 End Sub 2. 11

第十讲 窗体与控件

如果要编辑稍大一点的程序,大家就要用到窗体和控件了,其实也就是我们平常所说的对话框,达到人机对接,下面我们来一一讲解它们 一、窗体

1、 新建窗体

A、 Alt+F11——>>打开VBE编辑器——>>插入菜单——>>窗体

B、 把光标定位到“资源管理器”处——>>右击——>>插入——>>用户窗体 2、 删除窗体

A、 把光标定位到资源管理器上——>>右击——>>移除窗体 3、 窗体的Caption属性,是显示在窗体的标题

A、 实例 加载时修改窗体的标题为“身份证”,把光标定位到窗体上——>>右击——>>查看代码——>>对象列表选择窗体名称UserForm1——>>过程列表中选择Initialize如图 18,输入以下代码 Private Sub UserForm_Initialize()

第 29 页 共 52 页

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

共分享92篇相关文档

文档简介:

Excel 2007 VBA 教程 Sheets(i).Select Sheets(i).Activate ActiveSheet.Hyperlinks.Add Anchor:=Selection.ShapeRange.Item(1), Address:= _ \ Range(\ Next i '下一个i End Sub Sub 清空() Dim Sp As Shape, sh As Worksheet Worksheets(\目录\ For Each sh In Worksheets sh.Activate For Each Sp In ActiveSheet.Shapes Sp.De

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价: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