有很多工作表,需要将工作表名改为工作表内指定的固定单元格的值,有什么好方法么?


职领office达人学院第773个原创技巧

小白:我有很多工作表,需要将工作表名改为工作表内指定的固定单元格的值,有什么好方法么?
果果:简单,一段VBA搞定。【Alt+F11】打开VBA窗口,【插入】——【模块】,将下面这段代码粘贴进去,按F5运行就可以了。
Public Sub果果( )
For i=1 To Sheets.Count
Sheets(i).Name=Sheets(i).Cells(1,2)
Next
End Sub
小白:哇,好厉害,但是为什么只有前四个工作表完成了批量改名,最后一个工作表没有改,而且出现了报错呢?
果果:那是因为你的最后一个工作表里面有合并单元格啊,只要在代码里面加一句On
Error Resume Next再运行,在遇到错误的时候就会自动跳过,而不弹出错误提示对话框了。
小白:如果我只想取单元格值里的一部分字符作为工作表名,例如不要前两个字符“一只”,可以实现吗?
果果:在工作表里,这类取单元格一部分字符的问题,一般可以使用Left、Right、Mid、Len等函数嵌套来实现。VBA里的解决方法大同小异,代码如下:
Sheets(i).Name=Right(Sheets(i).Cells(1,2),Len(Sheets(i).Cells(1,2))-2)
最终完整代码:
Public Sub果果()
On Error Resume Next
For i=1 To Sheets.Count
Sheets(i).Name=Right(Sheets(i).Cells(1,2),Len(Sheets(i).Cells(1,2))-2)
Next
End Sub
下面这张图片,是大家总结的结果:
扫描下面二维码,每日打卡,每日精进office技巧,学在手里的技能,才是职场的核心竞争力。

(0)

相关推荐