Форум программистов, компьютерный форум CyberForum.ru Форум программистов | Компьютерный форум | Форум web-программистов | Форум по электронике и бытовой технике | Форум о софте | Научный форум | Карьера и бизнес
CyberForum.ru - форум программистов и сисадминов > Форум Форум программистов > Форум Basic > Форум VBA
Восстановить пароль Регистрация

Ответ Создать новую тему
 
04.08.2010, 14:28   #1
vfr800
Новичок
Регистрация: 04.08.2010
Сообщений: 4
Репутация: 0 (0)
Макрос открытия файлов / VBA

Помогите написать цикл, так как в программировании не силен. Задача состоит в слудующем:
-имеется каталог с несколькими деятками .htm файлов. Имена файлов-фамилии. Нужно открыть каждый файл, сделать кое-какие рассчеты в нем(макрос на произведение рассчетов уже понял как написать и с горем пополам это сделал) и результат в виде строчки нужно добать в "общий" .xls файл со сдвигом на одну стору и чтоб первый столбик в этом "общем" файле носил исходное название .htm файла(тоесть фамилию). Каталог с исходными файлами и их количеством периодически изменятся. Если уже были такие вопросы-ткните носом(честно искал, но не нашел!). Ну или хоть подскажите идеи как это можно реализовать!Заранее благодарен!!!
04.08.2010, 14:28
AdAgent
Объявления
04.08.2010, 18:55   #2
analyst
Форумчанин
Регистрация: 12.01.2009
Сообщений: 651
Репутация: 432 (139)
Записей в блоге: 1
Лучшие ответы: 6
Макрос открытия файлов

Цитата Сообщение от vfr800 Посмотреть сообщение
Ну или хоть подскажите идеи как это можно реализовать!Заранее благодарен!!!
Насколько я понимаю людей с одинаковыми фамилиями быть не может?
Если так, что можно это сделать так:
1. С помощью функции dir и цикла do..loop проходите по всем файлам.
2. В каждом файле делаете расчёт с помощью вашего макроса.
3. Вставляете необходимые данные в нужную строчку определяете с помощью первого столбца. В котором отражена фамилия, являющаяся названием соответствующего файла.
4. Если соответствующая строчка не была найдена, то данные вставляются в конец файла.
Другие темы раздела
Начальное значение дроплиста VBA
Всем привет и доброго времени суток, Есть проблема стоящая просто костью в горле, если кто-нибудь сможет помочь буду преблагадарен и прыгать от счастья. Дело, в общем вот в чем, есть dropdown, не в форме а на листе, создается вот так: Set ddbox = sht.DropDowns.Add(здесь параметры расположения...
Как адекватно сконвертировать даты VBA
Всем привет, спасибо за внимание, есть такая проблема, существует колонка с датами, в таком формате "Jan 2009" к примеру, формат ячейки general, нужно как то програмно сконвертить эту дату, чтобы эксель понимал это как дату и мог сортировать по датам а не как стринги. Я нашел такое решение (сам...
04.08.2010, 21:15  [ТС]   #3
vfr800
Новичок
Регистрация: 04.08.2010
Сообщений: 4
Репутация: 0 (0)
Макрос открытия файлов

Цитата Сообщение от analyst Посмотреть сообщение
1. С помощью функции dir и цикла do..loop проходите по всем файлам.
А вас не затруднит начеркать хоть элементарный пример кода, который можно было б прикрутить вначале общего макроса(того каким я делаю рассчеты внутри .xls файла)?
Поскольку я в программировании полный ноль! А от рутинной, монотонной роботы и поочередного открывания .htm файлов уже тошнит!
05.08.2010, 16:18   #4
analyst
Форумчанин
Регистрация: 12.01.2009
Сообщений: 651
Репутация: 432 (139)
Записей в блоге: 1
Лучшие ответы: 6
Макрос открытия файлов

Цитата Сообщение от vfr800 Посмотреть сообщение
А вас не затруднит начеркать хоть элементарный пример кода, который можно было б прикрутить вначале общего макроса(того каким я делаю рассчеты внутри .xls файла)?
Поскольку я в программировании полный ноль! А от рутинной, монотонной роботы и поочередного открывания .htm файлов уже тошнит!
При всём уважении к вам я этого делать не буду. Людей, которые хотят, чтобы им за бесплатно написали всё - очень много. Я могу только подсказать то, что знаю. Советую заплатить деньги и быстро получить необходимую программу. Много это стоить не будет!
05.08.2010, 16:18
AdAgent
Объявления
05.08.2010, 17:38   #5
petr-sev
Форумчанин
Регистрация: 30.03.2010
Сообщений: 124
Репутация: 115 (86)
Лучшие ответы: 1
Макрос открытия файлов

Код 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
06.08.2010, 15:22  [ТС]   #6
vfr800
Новичок
Регистрация: 04.08.2010
Сообщений: 4
Репутация: 0 (0)
Макрос открытия файлов

Цитата Сообщение от 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 файлов-для меня все ещё загадка!
06.08.2010, 15:30   #7
analyst
Форумчанин
Регистрация: 12.01.2009
Сообщений: 651
Репутация: 432 (139)
Записей в блоге: 1
Лучшие ответы: 6
Макрос открытия файлов

Цитата Сообщение от vfr800 Посмотреть сообщение
Простите мое невежество, но сделал все по вашему примеру, но к сожалению ничего не работает. Не "ругается" и молчит!))Что я делаю не так?Укажите пожалуйста и поправте, если не трудно.

...рассчеты внутри-это представлена только малая часть!С этим я уже разобрался. А вот как заставить Excel открывать по очереди все 50штук .htm файлов-для меня все ещё загадка!
Путь к файлам нужно задавать так:
Код Visual Basic
1
Path = "C:\rabota\"
07.08.2010, 09:39  [ТС]   #8
vfr800
Новичок
Регистрация: 04.08.2010
Сообщений: 4
Репутация: 0 (0)
Макрос открытия файлов

Цитата Сообщение от analyst Посмотреть сообщение
Путь к файлам нужно задавать так:
Код Visual Basic
1
Path = "C:\rabota\"
Спасибо!Исправил и вроде начало работать, только открываются как бы "пустые" файлы. Тоесть видно что все рассчеты производятся, только на пустом .xls файле и естественно никакого результата нет! В чем может быть проблемма?Что опять не так?(формат имен выглядит так: Сидоров Петр.htm)
07.08.2010, 17:03   #9
analyst
Форумчанин
Регистрация: 12.01.2009
Сообщений: 651
Репутация: 432 (139)
Записей в блоге: 1
Лучшие ответы: 6
Макрос открытия файлов

Цитата Сообщение от vfr800 Посмотреть сообщение
...только открываются как бы "пустые" файлы. Тоесть видно что все рассчеты производятся, только на пустом .xls файле и естественно никакого результата нет! В чем может быть проблемма?Что опять не так?(формат имен выглядит так: Сидоров Петр.htm)
Выложите хотябы один файл, который обрабатывается и сам обработчик.
07.08.2010, 21:57   #10
Cropus
Гость
Сообщений: n/a
Макрос открытия файлов / VBA

В представленном Вами коде нет вообще открытия файлов. Вы их открываете, чтобы получить из них данные? А так получается, что все действия выполняются по циклу над данными, полученными в прошлом цикле.
07.08.2010, 21:57
Yandex
Объявления
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему

Похожие темы
Тема Раздел Автор Дата
VBA: макрос открытия сторонней программы
Доброго времени суток! Подскажите, пожалуйста, код макроса чтобы открывался блокнот, а через блокнот открывался файл. После я добавлю функции, вносящие изменения в файл и необходимо будет чтобы этот файл сохранился с изменениями. адрес файла всегда статичный. я так понимаю надо использовать...
VBA Che_69 14.02.2014 14:55
MS Excel: Макрос открытия листа с вводом пароля
Возможно, эта тема уже поднималась на форуме. Но я ее не нашел... Мне нужно сделать кнопку с макросом, который бы открывал нужный скрытый лист с запросом на ввод пароля. Т.е. этот лист мог открыть только тот юзер, который знает пароль.
MS Office Excel Looney 20.12.2013 02:01
VBA: Как узнать путь к документу, который запущен и из которого запускается макрос. Работа с диалогами открытия и сохранения
Как узнать путь к документу, который запущен и из которого запускается макрос средствами vba?
VBA Gepar 22.12.2011 01:46
Макрос открытия новой формы. - Теория и практика программирования
Помогите пожалуйста! У меня база типа Northwind Я сделала меню - при нажатии на кнопку запускается макрос который открывает новую форму Вроде все нормально, но одна из кнопок меню не работает и кричит что таблица такая-то открыта другим пользователем,и поэтому нет возможности эту таблицу...
Теория и практика программирования Alice2005 25.01.2011 18:24
VBA: Макрос вставки файлов в листы-Необходимо изменить ниже приведённый макрос
Необходимо изменить ниже приведённый макрос, взятый с форума. Необходима помощь. Буду признателен. Автору макроса особое спасибо. Макрос берет из папки два файла 1.xls и 2.xls, вставляя данные в лист 1 и лист 2 основного файла (из которого вызывается макрос). Помогите, пожалуйста, изменить его...
VBA as-is 25.02.2010 15:37
Опции темы

Текущее время: 21:27. Часовой пояс GMT +4.

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.