Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 20025|回复: 37

[VBA] VBA基础每日一练:提取工作表名称(07-3-23)已总结

[复制链接]
发表于 2007-3-23 01:35 | 显示全部楼层 |阅读模式
<p>要求:1、<font color="#b81515">编写一个自定义函数getshname,提取公式单元格所在工作表名称</font></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2、\<font color="#1919a2">编写一个自定义函数getwhname,提取公式单元格所在工作簿名称</font></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3、<font color="#246431">要求把以上两个自定义函数合并一个函数Getname。设置一个参数来控制是求工作表名称还是工作簿名称。</font></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4、<font color="#d60808">代码添加注释。</font></p><p><font color="#d60808">21楼已添加总结</font></p>
[此贴子已经被作者于2007-3-24 1:50:43编辑过]
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2007-3-23 08:28 | 显示全部楼层
回复

使用道具 举报

发表于 2007-3-23 08:35 | 显示全部楼层

Function getshname() As String&nbsp; '自定义一个函数,名称为getshname<br/>getshname = ActiveSheet.Name&nbsp;&nbsp;&nbsp; '取得活动工作表的属性name<br/>End Function<br/>Function getwhname() As String&nbsp; '自定义一个函数,名称为getwhname<br/>getwhname = ThisWorkbook.Name&nbsp; '取得当前工作簿的属性name<br/>End Function<br/>Function getname(xx As String) As String&nbsp;&nbsp;&nbsp; '自定义一个函数,名为getname,变量为xx<br/>If xx = "sh" Then getname = ActiveSheet.Name&nbsp; '条件判断,如果变量值为字符sh,则函数取得表名<br/>If xx = "wb" Then getname = ThisWorkbook.Name&nbsp; '条件判断,如果变量值为字符wb,则函数取得当前工作簿名<br/>End Function
回复

使用道具 举报

发表于 2007-3-23 08:38 | 显示全部楼层

<p>哈哈,今天不知道能否发财  [em04]</p><p>三个自定义函数的具体应用:参见第一个工作表的A列</p>
回复

使用道具 举报

 楼主| 发表于 2007-3-23 08:39 | 显示全部楼层

<p>菜花,你的代码有两个问题:</p><p>&nbsp;&nbsp;&nbsp; 1、当你更改工作表名称或工作簿名称时,再看看公式的结果。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;2、等你改善了第一个功能后,第二个错误就会随之出现</p>
回复

使用道具 举报

 楼主| 发表于 2007-3-23 08:41 | 显示全部楼层

这道题看起来简单,但要小心两个易错的小陷井。
回复

使用道具 举报

发表于 2007-3-23 08:46 | 显示全部楼层

<p>再来一个自定义函数:《苦菜花》函数</p><p>Function 苦菜花(ByVal xx As Integer) As String&nbsp;&nbsp;&nbsp; '自定义一个函数,名为《苦菜花》,变量为xx<br/>If xx = 1 Then 苦菜花 = ActiveSheet.Name&nbsp; '条件判断,如果变量值为1,则函数取得表名<br/>If xx = 2 Then 苦菜花 = ThisWorkbook.Name&nbsp; '条件判断,如果变量值为2,则函数取得当前工作簿名<br/>If xx = 3 Then 苦菜花 = ThisWorkbook.FullName&nbsp; '条件判断,如果变量值为3,则函数取得当前工作簿路径和文件名</p><p>End Function<br/></p>
回复

使用道具 举报

发表于 2007-3-23 08:49 | 显示全部楼层

<p>原来设了陷井呀</p><p>更改表名,还没发现错误</p><p>再试下改簿名</p>
回复

使用道具 举报

发表于 2007-3-23 08:53 | 显示全部楼层

想起来了,可能跟易失性函数有关[em04]
回复

使用道具 举报

发表于 2007-3-23 08:59 | 显示全部楼层

<p>Function getshname()<br/>getshname = ActiveSheet.Name '返回当前工作表名称<br/>End Function<br/></p><p>Function getwhname()<br/>getwhname = ActiveWorkbook.Name '返回当前工作簿名称<br/>End Function<br/></p><p>Function Getname(RG As Boolean)<br/>If RG = False Then<br/>&nbsp;&nbsp;&nbsp; Getname = ActiveSheet.Name '当括号内值为FALSE或0返回当前工作表名称<br/>ElseIf RG = True Then<br/>&nbsp;&nbsp;&nbsp; Getname = ActiveWorkbook.Name '当括号内值为TRUE或1返回当前工作表名称<br/>End If<br/>End Function</p><p></p>
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-4 16:04 , Processed in 0.261944 second(s), 6 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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