Форум программистов и сисадминов CyberForum.ru
Вернуться   Форум программистов и сисадминов CyberForum.ru > Форум Форум программистов > Форум Basic > Форум VBA
Восстановить пароль Регистрация

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

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

Цитата Сообщение от vfr800 Посмотреть сообщение
Ну или хоть подскажите идеи как это можно реализовать!Заранее благодарен!!!
Насколько я понимаю людей с одинаковыми фамилиями быть не может?
Если так, что можно это сделать так:
1. С помощью функции dir и цикла do..loop проходите по всем файлам.
2. В каждом файле делаете расчёт с помощью вашего макроса.
3. Вставляете необходимые данные в нужную строчку определяете с помощью первого столбца. В котором отражена фамилия, являющаяся названием соответствующего файла.
4. Если соответствующая строчка не была найдена, то данные вставляются в конец файла.
Другие темы раздела Форум программистов VBA. Программирование на Visual Basic for Applications. Помощь в решении задач.
Начальное значение дроплиста 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
Google
Объявления
Старый 05.08.2010, 17:38   #5
petr-sev
Форумчанин
 
Регистрация: 30.03.2010
Сообщений: 124
Репутация: 114 (85)
Лучшие ответы: 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
Новичок
 
Регистрация: 29.07.2010
Сообщений: 2
Репутация: 0 (0)
Макрос открытия файлов / VBA

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

Похожие темы
Тема Автор
Windows 7 Проблема открытия exe файлов
Нечайно открыл ехе файл, как вордовский и применил для всех ехе-файлов, все проги стали открываться в ворде. Потом удалил ворд, проги вапще никакие не открываются, открывают корневую папку с ехе файлом. Также при вызове контекстного меню нету функции "открыть с помощью"(тока на ехе). Проги запускаю...
Uarek
VBA Как узнать путь к документу, который запущен и из которого запускается макрос. Работа с диалогами открытия и сохранения
Как узнать путь к документу, который запущен и из которого запускается макрос средствами vba?
Gepar
Windows XP Окно открытия файлов
Как сделать, чтобы в окне, которое появляется, когда нужно выбрать, какой файл открыть, файлы отображались в режиме таблицы и само окно было больше стандартного размера. Наверно в реестре нужно что-то изменить?
demonmov
Теория и практика программирования Макрос открытия новой формы.
Помогите пожалуйста! У меня база типа Northwind Я сделала меню - при нажатии на кнопку запускается макрос который открывает новую форму Вроде все нормально, но одна из кнопок меню не работает и кричит что таблица такая-то открыта другим пользователем,и поэтому нет возможности эту таблицу...
Alice2005
VBA Макрос вставки файлов в листы-Необходимо изменить ниже приведённый макрос
Необходимо изменить ниже приведённый макрос, взятый с форума. Необходима помощь. Буду признателен. Автору макроса особое спасибо. Макрос берет из папки два файла 1.xls и 2.xls, вставляя данные в лист 1 и лист 2 основного файла (из которого вызывается макрос). Помогите, пожалуйста, изменить его...
as-is
Опции темы

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

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