ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 208446|回复: 330

VBA入门之二《一夜暴富》

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2006-8-12 20:14 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:数据类型和基本语句

经过VBA入门之一《与代码亲密接触》的学习,我们的收获应该是不小的,是吧?
1、能在工作表中使用按钮,能在VBE中创建代码,并运行它。
2、认识了一些对象:按钮、工作表、单元格都是一个对象,初步建立了“对象”这个概念。
3、掌握了单元格对象的一些属性,如:Value、Address。
4、知道单元格有Range()、Cells()、[]等几种表示方法。
5、接触了按钮的一些属性,如:Left、Caption、Width、Height等等。
6、最值得高兴的是,你能读懂“CommandButton1.Caption”,看似长长的代码,其实就是“按钮1的标签”这意思。我们熟悉的小数点在这里是一个连接符,起承上启下的作用。

有没有想过?许多事情现在跃跃欲试,但就是不知道该用什么代码,这该死的代码。


别急,今晚,我们就来解决这一问题。

宏是什么东西?
Excel工具菜单下有个“宏”,这宏是什么东西?宏是一段代码。我们点击一个按钮运行一段代码,这一段代码就是一个宏。
菜单:工具-宏中有个“录制新宏”,这又是什么意思?
录制新宏就是把我们对Excel的键盘和鼠标操作记录为代码。
没有发愣吧?这东西好哩!


[此贴子已经被作者于2008-3-2 22:26:39编辑过]

ZHjcItOR.rar

7.09 KB, 下载次数: 11193

VBA入门之二《一夜暴富》

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-8-12 20:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

VBA入门之二《一夜暴富》2

我们就来试一试这“录制新宏”。

做点什么?把当前工作表隐藏了,看录制的宏是什么东西。

说做就做:

点击工具-宏-录制新宏:

这时,会显示工具“停止录制”,有两个按钮,一个是停止录制,点击它即停止录制宏。另一个是“相对引用”,如果对单元格进行操作,选择或取消“相对引用”,录制出的代码是不一样的,你可另找时间研究它。

操作:格式-工作表-隐藏。

点击“停止录制”按钮,也可以执行菜单命令“工具-宏-停止录制”。

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-8-12 20:15 | 显示全部楼层

VBA入门之二《一夜暴富》3

“录制新宏”的工作结束了,按Alt+F11打开VBE窗口:

系统自动增加一个模块“模块1”,刚才录制的宏就在这模块1下,如果看不到代码,双击“模块1”就是。

Sub Macro1()和End Sub是宏的开始行和结束行。Macro1是宏的名称。

绿色字体部分是注释,如果不喜欢,可以删掉它。

余下的只有一行:ActiveWindow.SelectedSheets.Visible = False

这时,我们该怎么做?

按F1,查帮助。用查户口的方式弄清每一个词的意义。

ActiveWindow:当前窗口。

SelectedSheets:选定的工作表。

Visible:决定对象是否可见。

我们操作的对象是ActiveWindow.SelectedSheets,即当前窗口中的选定的工作表。

让工作表隐藏,即是Visible = False。

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-8-12 20:16 | 显示全部楼层

VBA入门之二《一夜暴富》4

看出点名堂来没有?

如果不用“ActiveWindow.SelectedSheets”这种方式来指定工作表,还能怎样?回想一下,Sheets(工作表名),还记得吗?我们能用代码隐藏指定的工作表(如sheet2)吗?能:

QUOTE:

Sheets("Sheet2").Visible = False

当Visible = False时,表示隐藏,不可见,怎样表示可见呢?取值等于False相反的逻辑值是True:

QUOTE:

Sheets("Sheet2").Visible = True


可以用我们已经熟悉的方式,把代码写在按钮的Click()过程中,点击按钮运行它。


小结:本来我们不知道有Visible这么一个属性,因为需要,我们可以通过录制宏的办法记录对Excel的操作,再对宏代码进行分析,找到我们需要的代码并加以运用。掌握了录制宏这一技巧,是不是受用无穷呢?

练习1:编写代码,把工作表sheet3更名为“我的工作表”。

练习2:编写代码,取消当前窗口中的滚动条(提示:菜单:工具-选项-视图)。

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-8-12 20:16 | 显示全部楼层

VBA入门之二《一夜暴富》5

练习还顺畅吗?

工作表具有Visible属性,改变它的值,即是隐藏或显示指定的工作表。

其它对象是否有这属性?打开下面的附件看看:

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-8-12 20:17 | 显示全部楼层

VBA入门之二《一夜暴富》6

你一定已经知道,录制的宏可以直接运行。运行宏的办法有多种:

打开“工具-宏-宏”窗口,选择要运行的宏,点击按钮“运行”。


TA的精华主题

TA的得分主题

 楼主| 发表于 2006-8-12 20:17 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

VBA入门之二《一夜暴富》7

录制宏注意事项。

录制宏主要有两个目的。一是为了运用,如,当前工作表从第1行开始,每7行删除1行,我们可以录制一段宏,操作步骤是:

①将光标定位到要删除的第一行;

②开始录制(设置快捷键Ctrl+X、选择“相对引用”),完成两个动作:

⑴删除整行;

⑵光标下移6行到要删除的第2行,即第原来的第8行(最好用鼠标,可与键盘操作比较一下代码);

③停止录制。

利用这个实例,可对比领会一下“相对引用”的作用。

第二个目的,就是获取代码,我们不知道对象的属性、方法,通过录制宏来获取,再用到自己的代码中。

无论哪个目的,都要注意,不要进行不必要的操作,代码太多,不利于修改。如果获取代码为目的,录制过程更要简洁些,一次录制的动作越少越好,分析的时候才不容易出差错。

这一讲到这结束。

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-8-12 20:18 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

VBA入门之二《一夜暴富》问题解答

QUOTE:
以下是引用xiaoxun在2006-8-14 13:03:38的发言:

学生愚笨,请老师指点:录制后结果不同,错在哪?

第一步,定位第一行,不是选择第一行,用鼠标点击第一行的某一单元格,如A1。

开始录制后,第一步是选择第一行(你原来录制前的操作)。


[此贴子已经被作者于2006-8-14 15:34:59编辑过]

VBA入门之二《一夜暴富》问题解答

VBA入门之二《一夜暴富》问题解答

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-8-12 20:18 | 显示全部楼层

VBA入门之二《一夜暴富》问题解答

QUOTE:
以下是引用mannewer123在2006-8-15 16:18:53的发言:

VBA入门之二《一夜暴富》7中提到:利用这个实例,可对比领会一下“相对引用”的作用

可是我用了两种方法做了以后,怎么感觉是一样的啊,能不能请山老师具体解释下两个的区别,谢谢~

不能凭感觉,要用事实说话。

两种模式下录制宏,再分别运行它(多运行几次),看工作表变化。

 

  ZUXuEb4B.rar (7.46 KB, 下载次数: 2701)


[此贴子已经被作者于2006-8-15 20:06:09编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-8-12 20:18 | 显示全部楼层

VBA入门之二《一夜暴富》问题解答

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 22:36 , Processed in 0.044689 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表