Мне нужно объединить книги из папки, и я нашел приведенный ниже код, который должен делать именно то, что мне нужно.Код взят из здесь .
Проблема, с которой я сталкиваюсь, состоит в том, что все рабочие листы в моих рабочих книгах имеют одинаковое длинное название, и кажется, что Sub вызывает сбой, так как Excel не может автоматическипереименуйте листы из-за конфликта (например, нет места для добавления с (2) и (3) и т. д.).
Как добавить код, чтобы переименовать листы в произвольном порядке, например, Копировать1, Копировать 2 и т. Д ...?
Sub MergeWorkbooks()
Dim FolderName As String
Dim directory As String, fileName As String
Dim wb1 As Workbook, wb2 As Workbook
Dim ws As Worksheet
Set wb1 = Workbooks.Add
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Please select a folder."
.AllowMultiSelect = False
.Show
On Error Resume Next
FolderName = .SelectedItems(1)
Err.Clear
On Error GoTo 0
End With
directory = FolderName & "\"
fileName = Dir(directory & "*.xls?")
Do While fileName <> ""
Set wb2 = Workbooks.Open(directory & fileName)
For Each ws In wb2.Sheets
ws.Copy after:=wb1.Sheets(Sheets.Count)
Next ws
wb2.Close savechanges:=False
fileName = Dir
Loop
End Sub