用第一个工作表VBA的名称重命名工作簿

我想将文件夹中的每个工作簿重命名为工作簿中第一个工作表的名称。 例如,如果工作簿被称为“71107”,并且该工作簿中的工作表被称为“foobar”,我希望工作簿被重命名为“foobar”。

我目前的进展如下:

Sub RunMe() Dim objFSO As New FileSystemObject Dim objWkbk As Workbook Dim objFile As File Dim folderpath As String Application.ScreenUpdating = False folderpath = "D:\test\" For Each objFile In objFSO.GetFolder(folderpath).Files oldpath = objFile.path Set objWkbk = Workbooks.Open(oldpath) newpath = path & "NEWNAME\" & ActiveSheet.Name & ".xls" objWkbk.SaveAs Filename:=newpath objWkbk.Close Next objFile End Sub 

此代码运行速度非常慢(每个文件大约10秒)。 我的文件不大,只有40kb左右。 有没有更快的方式来执行此操作? 我也不需要保存每个文件的新副本,我很高兴重命名文件,我只是不知道的方式来做到这一点。

有两件事情,需要很长的一个是Open和SaveAs。 开放可以避免与ADO提到和更多的细节在这里

那么你也可以不使用SaveAs,因为它没有打开,但你可以使用类似的命令重命名文件:

 Name GivenLocation & OldFileName As GivenLocation & NewFileName