Форум программистов, компьютерный форум CyberForum.ru

VBA

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 57, средняя оценка - 4.68
vfr800
0 / 0 / 0
Регистрация: 04.08.2010
Сообщений: 4
#1

Макрос открытия файлов - VBA

04.08.2010, 14:28. Просмотров 7414. Ответов 9
Метки нет (Все метки)

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

Макрос открытия сторонней программы - VBA
Доброго времени суток! Подскажите, пожалуйста, код макроса чтобы открывался блокнот, а через блокнот открывался файл. После я добавлю...

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

Как лучше перебрать несколько файлов Excel для открытия в цикле - VBA
Уважаемые программисты я только начинаю осваивать VBA, поэтому по возможности ответе подробно! Ситуация следующая: я из файла excel...

Макрос для переименования файлов - VBA
Привет, есть таблица, в 1й столбце - путь к файлу, который нужно переименовать, 2й столбец - новое имя для этого файла. Нужен макрос,...

Макрос для склеивания PDF файлов - VBA
Коллеги, есть вопрос: например есть 2 документа в разных приложениях например в визио и экселе. можно ли в каком нибудь из...

Макрос для скачивания файлов с сайта - VBA
Доброго времени суток помогите с макросом. есть ссылки для скачивания файлов (отчетов). формат файлов которые будут скачиваться - csv...

Макрос для объединения 2 файлов в сводную таблицу - VBA
Друзья, не получается макросом создать сводные таблицы. Во вложении есть файл инвойс и файл упаковочный. На их основе нужно сделать файл...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
analyst
434 / 141 / 9
Регистрация: 12.01.2009
Сообщений: 675
Записей в блоге: 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
434 / 141 / 9
Регистрация: 12.01.2009
Сообщений: 675
Записей в блоге: 1
05.08.2010, 16:18     Макрос открытия файлов #4
Цитата Сообщение от vfr800 Посмотреть сообщение
А вас не затруднит начеркать хоть элементарный пример кода, который можно было б прикрутить вначале общего макроса(того каким я делаю рассчеты внутри .xls файла)?
Поскольку я в программировании полный ноль! А от рутинной, монотонной роботы и поочередного открывания .htm файлов уже тошнит!
При всём уважении к вам я этого делать не буду. Людей, которые хотят, чтобы им за бесплатно написали всё - очень много. Я могу только подсказать то, что знаю. Советую заплатить деньги и быстро получить необходимую программу. Много это стоить не будет!
petr-sev
483 / 117 / 16
Регистрация: 30.03.2010
Сообщений: 205
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
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
434 / 141 / 9
Регистрация: 12.01.2009
Сообщений: 675
Записей в блоге: 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
434 / 141 / 9
Регистрация: 12.01.2009
Сообщений: 675
Записей в блоге: 1
07.08.2010, 17:03     Макрос открытия файлов #9
Цитата Сообщение от vfr800 Посмотреть сообщение
...только открываются как бы "пустые" файлы. Тоесть видно что все рассчеты производятся, только на пустом .xls файле и естественно никакого результата нет! В чем может быть проблемма?Что опять не так?(формат имен выглядит так: Сидоров Петр.htm)
Выложите хотябы один файл, который обрабатывается и сам обработчик.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.08.2010, 21:57     Макрос открытия файлов
Еще ссылки по теме:

Объединение нескольких файлов в одну таблицу (макрос не работает) - VBA
Нашел макрос Sub LoadDataFromWorkbooks() On Error Resume Next: Err.Clear Dim AskForFolder As Boolean: AskForFolder = Not...

Макрос для печати файлов xls из конкретной папки - VBA
Добрый День, Уважаемые Дамы и Господа! Необходимо сделать макрос который будет печатать документы из конкретной папки, и конкретные листы...

Outlook VBA: кодировка файлов, сохраненых через макрос - VBA
Здравствуйте уважаемые, В VBA относительно новичок. Работаю над макросом, сохраняющем письма с вложениями на жесткий диск. Письма...

Макрос:Выбрать несколько текстовых файлов и открыть их все - VBA
Дали задание на практике, сделать макрос(генератор текста). С VBА первый раз работаю, плохо ориентируюсь. Всё что мне нужно для начала,...

Макрос на поиск файлов, в которых присувствует, какой то знак, например $ - VBA
Здравствуйте, помогите пожалуйста написать макрос на поиск файлов, в которых присувствует, какой то знак, например $. Названия фалов...


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

Или воспользуйтесь поиском по форуму:
Cropus
Сообщений: n/a
07.08.2010, 21:57     Макрос открытия файлов #10
В представленном Вами коде нет вообще открытия файлов. Вы их открываете, чтобы получить из них данные? А так получается, что все действия выполняются по циклу над данными, полученными в прошлом цикле.
Yandex
Объявления
07.08.2010, 21:57     Макрос открытия файлов
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru