Excel 将工作表批量重命名为特定文件夹中的工作簿(文件)名称

Excel 将工作表批量重命名为特定文件夹中的工作簿(文件)名称,excel,directory,rename,worksheet,vba,Excel,Directory,Rename,Worksheet,Vba,我在一个文件夹中有90张Excel工作表:每个Excel文件都有一个唯一的名称(公司编号),并且只包含一张工作表。但是,在所有文件中,图纸名称通常命名为“Sheet1”。是否有VBA代码可以将此文件夹中的所有图纸重命名为其各自的文件名,减去“.xlsx” 基本上,我希望将所有图纸合并到一个文件中(我已经有了VBA脚本)。但是,在继续之前,我必须将所有excel工作表名称重命名为其唯一标识符(即文件名) 我已经在网上看过了,但还没有看到这个脚本,也没有看到这个脚本用于其他类似目的。提前谢谢 我在网

我在一个文件夹中有90张Excel工作表:每个Excel文件都有一个唯一的名称(公司编号),并且只包含一张工作表。但是,在所有文件中,图纸名称通常命名为“Sheet1”。是否有VBA代码可以将此文件夹中的所有图纸重命名为其各自的文件名,减去“.xlsx”

基本上,我希望将所有图纸合并到一个文件中(我已经有了VBA脚本)。但是,在继续之前,我必须将所有excel工作表名称重命名为其唯一标识符(即文件名)


我已经在网上看过了,但还没有看到这个脚本,也没有看到这个脚本用于其他类似目的。提前谢谢

我在网上找到了一个解决方案,在

这就是解决办法。将MyFolder=“C:\example”更改为相应的文件夹

子表()
将MyFolder设置为字符串
将MyFile设置为字符串
将wbname设置为字符串
MyFolder=“C:\example”
MyFile=Dir(MyFolder&“\*.xls”)
Application.ScreenUpdating=False
当我的文件“”时执行此操作
工作簿。打开文件名:=MyFolder&“\”&MyFile
使用ActiveWorkbook
wbname=左(.Name,InStr(.Name,“.”-1)
.Sheets(1).Name=wbname
.Close savechanges:=True
以
MyFile=Dir
环
Application.ScreenUpdating=True

End Sub
VBA和VBScript不一样,一个内置在应用程序中,另一个独立。您还标记了批处理文件,您知道您想要什么吗?因为从目前的情况看,您似乎不是在寻求代码方面的帮助,而是在寻求关于如何执行任务的建议。不幸的是,StackOverflow是一个致力于前者的站点。我所说的“批处理”是指自动批量执行某些操作。这不是我第一次看到没有代码的问题。从未见过对此发表任何评论。不管怎么说,这个问题已经解决了,我认为这对其他用户的未来是有帮助的。这段代码的问题是,如果文件名中有一个句号,而不是名称和后缀之间的分隔符,它会给你错误的结果。下面是一个示例:
?Activeworkbook.name This.is.My.Test.File.name.xlsx?Left(Activeworkbook.name,InStr(Activeworkbook.name,“.”-1)这个
在这个示例中,我认为最好使用“.”拆分Activeworkbook.name,然后通过生成的数组循环到ubound(arrayname)-1边走边加入,或者使用Join并取字符串的左len减去数组中最后一个元素的len。虽然您指定的是
*.xls
,但您只需执行
wbname=left(.Name,len(.Name)-4)
,我们100%相信
有4个字符。xls
啊,我明白您的意思了。幸运的是,我没有这个问题,因为我在文件名中没有任何额外的点。谢谢你的邀请insight@DanDonoghue,VBA难道没有像Vbscript那样获得不带扩展名的基本文件名的方法,而不是从文件名的末尾减去4吗?我想是的,但当我使用它时,我找不到它:(。