Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Добавление номера при копировании листов из разных книг - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Добавление номера при копировании листов из разных книг
Заяц6628 Дата: Понедельник, 05.08.2024, 10:07 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 35
Репутация: 0 ±
Замечаний: 0% ±

Добрый день!
Помогите пожалуйста, есть много файлов из которых нужно скопировать листы, в файлах листы имеют одинаковое название, но файлы ведь считаются в переменной x.
Приложенный макрос копирует листы из файлов, можно ли к копируемым листам добавить номер переменной, чтобы устранить ошибку одинаковых имен.
К сообщению приложен файл: kopii.xlsm (12.4 Kb)
 
Ответить
СообщениеДобрый день!
Помогите пожалуйста, есть много файлов из которых нужно скопировать листы, в файлах листы имеют одинаковое название, но файлы ведь считаются в переменной x.
Приложенный макрос копирует листы из файлов, можно ли к копируемым листам добавить номер переменной, чтобы устранить ошибку одинаковых имен.

Автор - Заяц6628
Дата добавления - 05.08.2024 в 10:07
Апострофф Дата: Понедельник, 05.08.2024, 13:11 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 458
Репутация: 126 ±
Замечаний: 0% ±

Excel 1997
Здравствуйте.
Так?
[vba]
Код
Sub CombineWorkbooks()
    Dim FilesToOpen
    Dim x As Integer
    Dim S1 As Worksheet, S2 As Worksheet
    Application.ScreenUpdating = False  'отключаем обновление экрана для скорости
       
    'вызываем диалог выбора файлов для импорта
    FilesToOpen = Application.GetOpenFilename _
      (FileFilter:="all files (*.*), *.*", _
      MultiSelect:=True, Title:="Files to Merge")
   
    If TypeName(FilesToOpen) = "Boolean" Then
        MsgBox "Не выбрано ни одного файла!"
        Exit Sub
    End If
    'проходим по всем выбранным файлам
    x = 1
  While x <= UBound(FilesToOpen)
        Set importWB = Workbooks.Open(Filename:=FilesToOpen(x))
        'проходим по всем листам
        For Each S1 In importWB.Worksheets
          S1.Copy , ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
          ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count).Name = S1.Name & " Из книги " & x
        Next S1
        importWB.Close 'savechanges:=False
        x = x + 1
    Wend
     
    Application.ScreenUpdating = True
End Sub
[/vba]
 
Ответить
СообщениеЗдравствуйте.
Так?
[vba]
Код
Sub CombineWorkbooks()
    Dim FilesToOpen
    Dim x As Integer
    Dim S1 As Worksheet, S2 As Worksheet
    Application.ScreenUpdating = False  'отключаем обновление экрана для скорости
       
    'вызываем диалог выбора файлов для импорта
    FilesToOpen = Application.GetOpenFilename _
      (FileFilter:="all files (*.*), *.*", _
      MultiSelect:=True, Title:="Files to Merge")
   
    If TypeName(FilesToOpen) = "Boolean" Then
        MsgBox "Не выбрано ни одного файла!"
        Exit Sub
    End If
    'проходим по всем выбранным файлам
    x = 1
  While x <= UBound(FilesToOpen)
        Set importWB = Workbooks.Open(Filename:=FilesToOpen(x))
        'проходим по всем листам
        For Each S1 In importWB.Worksheets
          S1.Copy , ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
          ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count).Name = S1.Name & " Из книги " & x
        Next S1
        importWB.Close 'savechanges:=False
        x = x + 1
    Wend
     
    Application.ScreenUpdating = True
End Sub
[/vba]

Автор - Апострофф
Дата добавления - 05.08.2024 в 13:11
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!