ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

带你入门VBA,第四讲(如何控制关于工作薄与工作表)

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-10-14 13:12 | 显示全部楼层

ByVal是通常用来表示某个自变量将以传值(一种以传递自变量值给程序的方式,让程序取得变量的值,注:变量的值将不会被程序所更改)的方式传值

上例中:

Private Sub Workbook_NewSheet(ByVal Sh As Object) Application.DisplayAlerts = False Sh.Delete Application.DisplayAlerts = True End Sub

把新增加的工作表作为变量传给程序(ByVal Sh As Object),程序中Sh.Delete才能运行,Sh即为新插入的工作表,(ByVal Sh As Object)是系统自动提供的,不能更改

[此贴子已经被作者于2004-10-14 13:12:26编辑过]

TA的精华主题

TA的得分主题

发表于 2004-10-14 13:29 | 显示全部楼层
B9ixOFJW.rar (4.47 KB, 下载次数: 124) 不是要的结果[em06]

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-10-14 13:34 | 显示全部楼层
以下是引用happy91在2004-10-14 13:29:00的发言:

带你入门VBA,第四讲(如何控制关于工作薄与工作表)

带你入门VBA,第四讲(如何控制关于工作薄与工作表)

TA的精华主题

TA的得分主题

发表于 2004-10-14 13:42 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
以下是引用兰色幻想在2004-10-14 13:12:00的发言:

Private Sub Workbook_NewSheet(ByVal Sh As Object) Application.DisplayAlerts = False Sh.Delete Application.DisplayAlerts = True End Sub

Private在这里是什么意思?我把去掉,也正常运行.

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-10-14 13:44 | 显示全部楼层

在代码框中上方有两个组合框,一个是显示对象名称,如:workbook,worksheet,以及你插入的控件名称,另一个就是事件名称,比如:open、close等,在利用工作薄或工作表事件程序时,在对象框中选取对象(本例选Workbook),在事件下拉框中选取事件名称,本例是(Newsheet),即当新增工作表时运行什么什么程序

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-10-14 13:49 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
以下是引用先锋在2004-10-14 13:42:00的发言:

Private在这里是什么意思?我把去掉,也正常运行.

Private中文意思是私有的,所在在前面加个它后,表示程序只能在本内部运行,别的程序不能调用这个程序。如下面的就是调用的例子

SUB AA ()

语句

END SUB

SUB BB ()

AA

其他语句

END SUB

TA的精华主题

TA的得分主题

发表于 2004-10-14 13:51 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-10-14 13:54 | 显示全部楼层

怎么没人问这句?是不是地球人都知道??

Application.DisplayAlerts = False

TA的精华主题

TA的得分主题

发表于 2004-10-14 14:02 | 显示全部楼层
以下是引用兰色幻想在2004-10-14 13:54:00的发言:

怎么没人问这句?是不是地球人都知道??

Application.DisplayAlerts = False

我说不清楚了,还是你来讲吧.

[此贴子已经被作者于2004-10-14 14:31:02编辑过]

TA的精华主题

TA的得分主题

发表于 2004-10-14 14:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
以下是引用兰色幻想在2004-10-14 11:36:00的发言:

Workbooks.close是关闭所有打开的工作薄

Workbooks("123,XLS").close是关闭指定的工作薄

以上讨论了工作薄的新建,保存和统计,做个练习

要求:

1、设置一个按纽,执行程序后会在D盘新建三个EXCEL文件,文件名分别为1、2、3

2、设置一个按纽,执行程序后会关闭工作薄"2.XLS",然后再统计打开工作薄的数量,

Sub 按钮1_单击() For i = 1 To 3 Workbooks.Add ActiveWorkbook.SaveAs Filename:="d:\" & i & ".xls" Next End Sub Sub 按钮2_单击() Workbooks("2.XLS").Close MsgBox Workbooks.Count End Sub 我依样画葫芦的。这样对么?

可是第二个按钮的运行结果是“4”,我当前只有3个工作簿。怎么回事?

[此贴子已经被作者于2004-10-14 14:11:34编辑过]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-25 02:20 , Processed in 0.040526 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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