Форум программистов, компьютерный форум CyberForum.ru Форум программистов | Компьютерный форум | Форум web-программистов | Форум по электронике и бытовой технике | Форум о софте | Научный форум | Карьера и бизнес
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
analyst
Форумчанин
433 / 140 / 6
Регистрация: 12.01.2009
Сообщений: 651
Записей в блоге: 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
Сообщений: 651
Записей в блоге: 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
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
Сообщений: 651
Записей в блоге: 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
Сообщений: 651
Записей в блоге: 1
07.08.2010, 17:03
  #9
Цитата Сообщение от vfr800 Посмотреть сообщение
...только открываются как бы "пустые" файлы. Тоесть видно что все рассчеты производятся, только на пустом .xls файле и естественно никакого результата нет! В чем может быть проблемма?Что опять не так?(формат имен выглядит так: Сидоров Петр.htm)
Выложите хотябы один файл, который обрабатывается и сам обработчик.
Cropus
Гость
Сообщений: n/a
07.08.2010, 21:57     Макрос открытия файлов
  #10
В представленном Вами коде нет вообще открытия файлов. Вы их открываете, чтобы получить из них данные? А так получается, что все действия выполняются по циклу над данными, полученными в прошлом цикле.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему

Похожие темы
Тема Раздел Автор Дата
VBA макрос открытия сторонней программы
Доброго времени суток! Подскажите, пожалуйста, код макроса чтобы открывался блокнот, а через блокнот открывался файл. После я добавлю функции, вносящие изменения в файл и необходимо будет чтобы...
VBA Che_69 14.02.2014 14:55
MS Excel Макрос открытия листа с вводом пароля
Возможно, эта тема уже поднималась на форуме. Но я ее не нашел... Мне нужно сделать кнопку с макросом, который бы открывал нужный скрытый лист с запросом на ввод пароля. Т.е. этот лист мог...
MS Office Excel Looney 20.12.2013 02:01
VBA Как лучше перебрать несколько файлов Excel для открытия в цикле
Уважаемые программисты я только начинаю осваивать VBA, поэтому по возможности ответе подробно! Ситуация следующая: я из файла excel открываю поочередно несколько файлов также excel, в которых у...
VBA NuKE18 19.06.2012 00:44
VBA Как узнать путь к документу, который запущен и из которого запускается макрос. Работа с диалогами открытия и сохранения
Как узнать путь к документу, который запущен и из которого запускается макрос средствами vba?
VBA Gepar 22.12.2011 01:46
Windows XP Окно открытия файлов
Как сделать, чтобы в окне, которое появляется, когда нужно выбрать, какой файл открыть, файлы отображались в режиме таблицы и само окно было больше стандартного размера. Наверно в реестре нужно...
Windows XP demonmov 14.10.2011 10:39
Макрос открытия новой формы.
Помогите пожалуйста! У меня база типа Northwind Я сделала меню - при нажатии на кнопку запускается макрос который открывает новую форму Вроде все нормально, но одна из кнопок меню не работает и...
Теория и практика программирования Alice2005 25.01.2011 18:24
VBA Макрос вставки файлов в листы-Необходимо изменить ниже приведённый макрос
Необходимо изменить ниже приведённый макрос, взятый с форума. Необходима помощь. Буду признателен. Автору макроса особое спасибо. Макрос берет из папки два файла 1.xls и 2.xls, вставляя данные в...
VBA as-is 25.02.2010 15:37
VBA Макрос для открытия "cnt" файла
Est' 'cnt' file. Nuzhno sostavit' makros (v VBA) dlja otkritiya etogo faila v Word kak TXT file i dalee soxranitj kak DOC file (s dobavleniem 'doc' rashirenija)
VBA elina 11.12.2009 13:32
Опции темы

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

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