我有很多工作表,需要将工作表名改为工作表内指定的固定单元格的值,有什么好方法么?
?
简单,一段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
下面这张图片,是大家总结的结果:
?
……