Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
dimosos
1

Первые листы всех XLS файлов в папке перенести в один XLS файл

07.06.2012, 11:33. Показов 3473. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
То есть:
1. В предварительно заданной папке (например, "c:/1") лежат несколько десятков XLS файлов.
2. В каждом файле есть один лист.
3. Нужно создать новый XLS или XLSX файл.
4. В новый файл перенести первые листы всех файлов, размещённых в папке.

Добавлено через 18 минут
P.S. Некоторые файлы на самом деле (по сруктуре, но не по имени) являются XLSX файлами, поэтому при их ручном открытии выскакивает предупреждение.

Добавлено через 11 минут
Взял вот такой код:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
 Sub FreeBooksOpen()
    Dim MyName As String
    Dim MyPath As String
    Dim sPath As String ' тут вставил
        MyPath = "C:\MyTemp\"
        MyName = Dir(MyPath & "*.xls")
         Do While MyName <> ""
            sPath = MyPath + MyName ' тут вставил
            Excel.Application.Workbooks.Open sPath ' тут изменил
            MyName = Dir
         Loop
End Sub
Всё работает. Но появился вопрос: как закрывать "использованные" файлы?

Добавлено через 29 минут
И ещё вопрос: как выбрать первый лист, не зная его имени (точнее, оно будет везде разное).
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.06.2012, 11:33
Ответы с готовыми решениями:

Конвертер xls в csv всех файлов в папке
Посмотрите , в чем ошибка? Set objConnXLS = CreateObject(&quot;ADODB.Connection&quot;) Set objRecordSet =...

Объединение файлов xls из каталога в один файл/таблицу
Добрый вечер. Подскажите, пожалуйста, как можно реализовать следующее: В папке есть файлы xls...

Поиск и удаления всех файлов с расширением doc и xls
Нужно провести поиск по всему компьютеру и найденные файлы с расширением word 2003(doc), excel...

Открытие из заданного каталога всех файлов с заданым расширением (xls)
Никак не могу найти решение своей задачи, если у кого-нибудь есть желание и возможность, то...

2
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
07.06.2012, 11:40 2
Перебор файлов в папке:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Sub test() 
  Dim Folder As String 
  Dim wb As String 
  Dim objWb As Workbook 
  Dim workWb As Workbook 
  Dim i As Integer 
  Set workWb = ActiveWorkbook  'Запоминаем активную книгу 
  
  'Показываем диалог выбора папки 
  With Application.FileDialog(msoFileDialogFolderPicker) 
    .Title = "Выберите папку, файлы в которой нужно обработать" 
    .ButtonName = "Выбрать" 
    .AllowMultiSelect = False 
    If .Show Then Folder = .SelectedItems(1) Else Exit Sub 
  End With 
  'Начинаем читать файлы из папки 
  wb = Dir(Folder & Application.PathSeparator & "*.xls") 
  While Len(wb) > 0 
    i = i + 1 
    wb = Folder & Application.PathSeparator & wb 
    Set objWb = Workbooks.Open(wb) 
    workWb.Sheets(1).Cells(i, 1) = objWb.Sheets(1).Cells(1, 1) 
    objWb.Close False 
    wb = Dir 'читаем следующий файл 
  Wend 
End Sub
Добавлено через 55 секунд
внимание на строку 23

Добавлено через 1 минуту
как выбрать первый лист
Sheets(1) будет первым по расположению в линейке ярлыков листов независимо от имени
0
5606 / 1592 / 412
Регистрация: 23.12.2010
Сообщений: 2,382
Записей в блоге: 1
07.06.2012, 11:54 3
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub FreeBooksOpen()
    Dim MyName As String, MyPath As String, sPath As String
    Dim wbTarget As Workbook, wbIstochnik  As Workbook
    Workbooks.Add
    Set wbTarget = ActiveWorkbook
    MyPath = "C:\MyTemp\"
    MyName = Dir(MyPath & "*.xls")
    Do While MyName <> ""
        sPath = MyPath & MyName
        Application.DisplayAlerts = False ' Чтобы открывал с неправильным расширением без вопросов.
        Excel.Application.Workbooks.Open Filename:=sPath, UpdateLinks:=0, ReadOnly:=True
        Application.DisplayAlerts = True
        Set wbIstochnik = ActiveWorkbook
        wbIstochnik.Worksheets(1).Copy Before:=wbTarget.Worksheets(1)
        wbIstochnik.Close savechanges:=False
        MyName = Dir
    Loop
End Sub
0
07.06.2012, 11:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.06.2012, 11:54
Помогаю со студенческими работами здесь

Как найти в xls-файле слово и скопировать его в другой xls?
Если кто может... HELP!!! Надо из book1.xls найти слово test и перекинуть его в book2.xls

Перенос данных из xls в xls для отчета
Perenosit ne vse dannyje iz faila s dannymi v otczet, nowiczek w etoj teme ne mogu razobrat'...

Чтобы при выборе ячейки с номером в "1.xls" открывался соответствующий файл в другой папке
Здравствуйте, Имеется документ &quot;1.xls&quot;, в нём прописаны номера. Этим номерам в другой папке...

Перенести данные из xls (Excel) в mysql
Здравствуйте. В общем говоря вопрос в названии темы, но достаточно хотя бы просто заносить данные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru