Форум программистов, компьютерный форум CyberForum.ru
CyberForum.ru - форум программистов и сисадминов > > >
Восстановить пароль Регистрация
 
vfr800
Новичок
0 / 0 / 0
Регистрация: 04.08.2010
Сообщений: 4
04.08.2010, 14:28     Макрос открытия файлов   #1
Помогите написать цикл, так как в программировании не силен. Задача состоит в слудующем:
-имеется каталог с несколькими деятками .htm файлов. Имена файлов-фамилии. Нужно открыть каждый файл, сделать кое-какие рассчеты в нем(макрос на произведение рассчетов уже понял как написать и с горем пополам это сделал) и результат в виде строчки нужно добать в "общий" .xls файл со сдвигом на одну стору и чтоб первый столбик в этом "общем" файле носил исходное название .htm файла(тоесть фамилию). Каталог с исходными файлами и их количеством периодически изменятся. Если уже были такие вопросы-ткните носом(честно искал, но не нашел!). Ну или хоть подскажите идеи как это можно реализовать!Заранее благодарен!!!
AdAgent
Объявления
04.08.2010, 14:28    Макрос открытия файлов
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.08.2010, 14:28    Макрос открытия файлов

Посмотрите здесь:

VBA Макрос вставки файлов в листы-Необходимо изменить ниже приведённый макрос

VBA Как узнать путь к документу, который запущен и из которого запускается макрос. Работа с диалогами открытия и сохранения

VBA Макрос, который будет вытягивать последнюю ячейку у группы файлов?

VBA Макрос на поиск файлов, в которых присувствует, какой то знак, например $

VBA Макрос, чтобы другой макрос распихал сам по N файлам

VBA Как лучше перебрать несколько файлов Excel для открытия в цикле

analyst
Форумчанин
433 / 140 / 6
Регистрация: 12.01.2009
Сообщений: 652
Записей в блоге: 1
04.08.2010, 18:55     Макрос открытия файлов   #2
Цитата Сообщение от vfr800 Посмотреть сообщение
Ну или хоть подскажите идеи как это можно реализовать!Заранее благодарен!!!
Насколько я понимаю людей с одинаковыми фамилиями быть не может?
Если так, что можно это сделать так:
1. С помощью функции dir и цикла do..loop проходите по всем файлам.
2. В каждом файле делаете расчёт с помощью вашего макроса.
3. Вставляете необходимые данные в нужную строчку определяете с помощью первого столбца. В котором отражена фамилия, являющаяся названием соответствующего файла.
4. Если соответствующая строчка не была найдена, то данные вставляются в конец файла.
vfr800
Новичок
0 / 0 / 0
Регистрация: 04.08.2010
Сообщений: 4
04.08.2010, 21:15  [ТС]     Макрос открытия файлов   #3
Цитата Сообщение от analyst Посмотреть сообщение
1. С помощью функции dir и цикла do..loop проходите по всем файлам.
А вас не затруднит начеркать хоть элементарный пример кода, который можно было б прикрутить вначале общего макроса(того каким я делаю рассчеты внутри .xls файла)?
Поскольку я в программировании полный ноль! А от рутинной, монотонной роботы и поочередного открывания .htm файлов уже тошнит!
analyst
Форумчанин
433 / 140 / 6
Регистрация: 12.01.2009
Сообщений: 652
Записей в блоге: 1
05.08.2010, 16:18     Макрос открытия файлов   #4
Цитата Сообщение от vfr800 Посмотреть сообщение
А вас не затруднит начеркать хоть элементарный пример кода, который можно было б прикрутить вначале общего макроса(того каким я делаю рассчеты внутри .xls файла)?
Поскольку я в программировании полный ноль! А от рутинной, монотонной роботы и поочередного открывания .htm файлов уже тошнит!
При всём уважении к вам я этого делать не буду. Людей, которые хотят, чтобы им за бесплатно написали всё - очень много. Я могу только подсказать то, что знаю. Советую заплатить деньги и быстро получить необходимую программу. Много это стоить не будет!
petr-sev
Форумчанин
115 / 86 / 1
Регистрация: 30.03.2010
Сообщений: 124
05.08.2010, 17:38     Макрос открытия файлов   #5
Код Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub NN()
Dim Path As String
Dim S As String
Path = <путь к папке с файлами>
S = Dir(Path & "*.htm")
While S <> ""
      вызов функции выполнения расчетов и записи результатов в общий файл
      S = Dir
Wend
End Sub
AdAgent
Объявления
05.08.2010, 17:38    Макрос открытия файлов
vfr800
Новичок
0 / 0 / 0
Регистрация: 04.08.2010
Сообщений: 4
06.08.2010, 15:22  [ТС]     Макрос открытия файлов   #6
Цитата Сообщение от petr-sev Посмотреть сообщение
[VB]Sub NN()
Dim Path As String...
Простите мое невежество, но сделал все по вашему примеру, но к сожалению ничего не работает. Не "ругается" и молчит!))Что я делаю не так?Укажите пожалуйста и поправте, если не трудно.

Код 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
Sub NN()
Dim Path As String
Dim S As String
Path = "C:\rabota"
S = Dir(Path & "*.htm")
While S <> ""
      ActiveCell.Offset(2, 0).Rows("1:11").EntireRow.Select
    Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Copy
    Sheets.Add After:=Sheets(Sheets.Count)
    ActiveSheet.Paste
    ActiveCell.Offset(11, 1).Range("A1").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=AVERAGE(R[-10]C:R[-1]C)"
    Selection.AutoFill Destination:=ActiveCell.Range("A1:HB1"), Type:= _
        xlFillDefault
    ActiveCell.Range("A1:HB1").Select
    ActiveCell.Offset(0, -1).Range("A1").Select
      S = Dir
Wend
End Sub 
...рассчеты внутри-это представлена только малая часть!С этим я уже разобрался. А вот как заставить Excel открывать по очереди все 50штук .htm файлов-для меня все ещё загадка!
analyst
Форумчанин
433 / 140 / 6
Регистрация: 12.01.2009
Сообщений: 652
Записей в блоге: 1
06.08.2010, 15:30     Макрос открытия файлов   #7
Цитата Сообщение от vfr800 Посмотреть сообщение
Простите мое невежество, но сделал все по вашему примеру, но к сожалению ничего не работает. Не "ругается" и молчит!))Что я делаю не так?Укажите пожалуйста и поправте, если не трудно.

...рассчеты внутри-это представлена только малая часть!С этим я уже разобрался. А вот как заставить Excel открывать по очереди все 50штук .htm файлов-для меня все ещё загадка!
Путь к файлам нужно задавать так:
Код Visual Basic
1
Path = "C:\rabota\"
vfr800
Новичок
0 / 0 / 0
Регистрация: 04.08.2010
Сообщений: 4
07.08.2010, 09:39  [ТС]     Макрос открытия файлов   #8
Цитата Сообщение от analyst Посмотреть сообщение
Путь к файлам нужно задавать так:
Код Visual Basic
1
Path = "C:\rabota\"
Спасибо!Исправил и вроде начало работать, только открываются как бы "пустые" файлы. Тоесть видно что все рассчеты производятся, только на пустом .xls файле и естественно никакого результата нет! В чем может быть проблемма?Что опять не так?(формат имен выглядит так: Сидоров Петр.htm)
analyst
Форумчанин
433 / 140 / 6
Регистрация: 12.01.2009
Сообщений: 652
Записей в блоге: 1
07.08.2010, 17:03     Макрос открытия файлов   #9
Цитата Сообщение от vfr800 Посмотреть сообщение
...только открываются как бы "пустые" файлы. Тоесть видно что все рассчеты производятся, только на пустом .xls файле и естественно никакого результата нет! В чем может быть проблемма?Что опять не так?(формат имен выглядит так: Сидоров Петр.htm)
Выложите хотябы один файл, который обрабатывается и сам обработчик.
Cropus
Гость
Сообщений: n/a
07.08.2010, 21:57     Макрос открытия файлов   #10
В представленном Вами коде нет вообще открытия файлов. Вы их открываете, чтобы получить из них данные? А так получается, что все действия выполняются по циклу над данными, полученными в прошлом цикле.
Yandex
Объявления
07.08.2010, 21:57    Макрос открытия файлов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему
Опции темы

Текущее время: 03:59. Часовой пояс GMT +4.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.