转 用自定义函数获取工作表名称

(一)

有时需要在工作表中引用同一工作簿中其他工作表名称,当工作表数量较多时,逐一手工输入有些繁琐,这时可以添加一个自定义函数来快速获取工作表名称,方法如下:

    按Alt+F11,打开VBA编辑器,单击菜单“插入→模块”,在代码窗口中输入下列代码:

    Function GetSheetName(idx As Integer, Optional relative_position As Boolean) As String
    Application.Volatile
    GetSheetName = Sheets(IIf(relative_position, ActiveSheet.index - -idx, idx)).Name
    End Function

    上述代码定义了一个自定义函数GetSheetName,有两个参数:“idx”为工作表的索引号,“relative_position ”为逻辑型可选参数。“relative_position ”参数为“0”或省略时表示按工作表的绝对位置来获取工作表名称,其取值范围为“1,2,3,……”,当“idx”取这些值时依次获取工作簿中从左到右的第1,2,3,……个工作表的名称;该参数为真时按相对位置来获取工作表名称,即“idx”参数为“0”时取得当前工作表名称,为“-1”时取得其左侧第一个工作表名称,为“1”时取得其右侧第一个工作表名称。

    示例:

    取得第一个工作表的名称:

    =getsheetname(ROW(A1))

    向下拖到填充柄填充公式即可依次取得各工作表名称。

    在G11单元格取得当前工作表的名称:

    =getsheetname(ROW()-11,1)

    向上填充公式可获取其左侧工作表名称,向下填充公式可获取其右侧工作表名称。


(二)

前提:这个工作簿是保存过的,否则公式不生效。
在工作表生任意一个单元格输入
=CELL("filename",A1)
=REPLACE(CELL("filename",A1),1,FIND("]",CELL("filename",A1)),"")&T(NOW())
第一个公式提取完整路径+工作簿名称+工作表名称
第二个只提取当前工作表名称。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值