需求:
一个Excel ,每一个 SHEET 页都有一个单元格,用来存放此 SHEET 页是第几个 SHEET 页。
场景:
设计了一个工作薄,有十几个工作表,每一个工作表,都有一个单元格,单元格的内容是 “表N”,N 代表这个工作表在工作薄中的位置。
举例:
比如第 5 个工作表,那个单元格内容就是 “表5”,第 9 个工作表的那个单元格内容是 “表9”。
思路:
VBA 开发一个自定义函数,用来取当前工作表的位置。用到的方法是 Index。
然后使用 EXCEL 自带的函数 CONCATENATE 将 字符串 “表” 和 N 进行拼接即可。
实现:
1. 在当前工作薄中打开 VBA 开发工具开发自定义函数:
打开“开发工具”---->“Visual Basic”(或者直接快捷键 Alt + F11):
打开的窗口就是 VBA 开发工具了。
接下来,如下图选择当前工作薄,右键---->“插入”---->“模块”:
在右边的新窗口(模块)中,输入以下代码(如图):
Function num()
num = ActiveSheet.Index
End Function
(Ctrl + S )保存。VB 的工作就完成了。这个窗口就可以关闭了。
2. 单元格设置公式:
如图,在具体的单元格上,输入公式:
=CONCATENATE("表",num())
完成。上图显示的是第四个工作表,单元格的内容就是 “表4”。
附:去掉保存文件时的 “隐私问题警告” 提示:
由于使用了 VB 开发,因此保存此类文件时,会有 “隐私问题警告” 提示,如下图:
这个提示很是讨厌,因此还是去掉提示的好。
方法如下:
选择 “文件”---->“选项”,进入Excel选项窗口:
点击“信任中心”---->“信任中心设置”,进入设置信任中心的窗口:
选择 “个人信息选项”,去掉勾选“保存时从文件属性中删除个人信息”。
看清楚,是去掉勾选!!!默认是勾选的,此处我们不勾选。
去掉之后长这个样子:
设置完成。
此时我们重新保存。就没有提示了。
说明:这个设置只是针对当前的工作薄,并没有改变其他工作薄关于此选项的设置。