[/vba] Правда Range("B3:B26") сомневаюсь, что нужно дублировать рядом 2 раза... А если надо - то можно сделать отимальнее иначе... Ну да ладно, так понятнее для начала.
Далее - Range("B3:D23").Select Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _ ...
Нужно указать, на каком листе этот диапазон, и можно без select:
[/vba] Правда Range("B3:B26") сомневаюсь, что нужно дублировать рядом 2 раза... А если надо - то можно сделать отимальнее иначе... Ну да ладно, так понятнее для начала.
Далее - Range("B3:D23").Select Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _ ...
Нужно указать, на каком листе этот диапазон, и можно без select:
Не в случае с дублированием информация предыдущего файла будет затираться следующим, здесь похоже надо применить if ... then ... где будет проверяться название файла ММС или ММС2. Правильно я думаю?
[vba]
Код
If InStr(varItem, "DVN-stats.txt") Then Range("A1:B26").Copy ThisWorkbook.Worksheets(y).Range("A1") End If If InStr(varItem, "MMS-stats.txt") Then Range("B3:B26").Copy ThisWorkbook.Worksheets(y).Range("C3") End If If InStr(varItem, "MMS2-stats.txt") Then Range("B3:B26").Copy ThisWorkbook.Worksheets(y).Range("D3") End If
[/vba]
Не в случае с дублированием информация предыдущего файла будет затираться следующим, здесь похоже надо применить if ... then ... где будет проверяться название файла ММС или ММС2. Правильно я думаю?
[vba]
Код
If InStr(varItem, "DVN-stats.txt") Then Range("A1:B26").Copy ThisWorkbook.Worksheets(y).Range("A1") End If If InStr(varItem, "MMS-stats.txt") Then Range("B3:B26").Copy ThisWorkbook.Worksheets(y).Range("C3") End If If InStr(varItem, "MMS2-stats.txt") Then Range("B3:B26").Copy ThisWorkbook.Worksheets(y).Range("D3") End If
Ну мне не известна задача в целом, зачем меняете листы, ну и если на каждый файл новый лист - то что там затирать, если он новый? Я вообще в начале предполагал, что выгрузка будет копироваться на один лист, но сдигаясь по столбцам. Поэтому я там в начале приводил пример с x и y.
ММС или ММС2 - вообще непонятная штука... Но их можно проверять где угодно - Вы ведь перебираете имена файлов, отбираете по "-stats.txt", так можно отбирать далее (или сразу) и по "ММС-stats.txt" или "ММС2-stats.txt" и в зависимости от результата менять обработку.
Ну мне не известна задача в целом, зачем меняете листы, ну и если на каждый файл новый лист - то что там затирать, если он новый? Я вообще в начале предполагал, что выгрузка будет копироваться на один лист, но сдигаясь по столбцам. Поэтому я там в начале приводил пример с x и y.
ММС или ММС2 - вообще непонятная штука... Но их можно проверять где угодно - Вы ведь перебираете имена файлов, отбираете по "-stats.txt", так можно отбирать далее (или сразу) и по "ММС-stats.txt" или "ММС2-stats.txt" и в зависимости от результата менять обработку.Hugo
Здесь такая ситуация: как вы уже поняли есть каталог ____ 2013--- |________ | 2013-11|-- |__________ |2013-11-11|-- | _________ |--| 00:00:00| - в каждом часе есть несколько файлов и 3 из них -stats.txt | _________ |--| 01:00:00| | _________ |--| 02:00:00| | | _________ |--| 23:00:00|
В Excel мы сначала на страницах 00,01 ... 23 собираем данные из файлов .TXT, каждый час на своем листе куда попадают данные из 3-х файлов (из своей папки), потом сводим в статистику и потом рисуем графики. Вот такая идея
А в этой строке можно написать чтобы рассматривались только .TXT файлы? [vba]
Код
If GetFiles("C:\stats\2013\2013-11\2013-11-11", dctDict, True) Then 'заполняется объект Dyctionary: dctDict
[/vba]
Здесь такая ситуация: как вы уже поняли есть каталог ____ 2013--- |________ | 2013-11|-- |__________ |2013-11-11|-- | _________ |--| 00:00:00| - в каждом часе есть несколько файлов и 3 из них -stats.txt | _________ |--| 01:00:00| | _________ |--| 02:00:00| | | _________ |--| 23:00:00|
В Excel мы сначала на страницах 00,01 ... 23 собираем данные из файлов .TXT, каждый час на своем листе куда попадают данные из 3-х файлов (из своей папки), потом сводим в статистику и потом рисуем графики. Вот такая идея
А в этой строке можно написать чтобы рассматривались только .TXT файлы? [vba]
Код
If GetFiles("C:\stats\2013\2013-11\2013-11-11", dctDict, True) Then 'заполняется объект Dyctionary: dctDict
Ну тогда нужно делать иначе - выделять из пути к очередному файлу имя листа, далее DVN/MMS/MMS2, далее идём на этот лист, и выгружаем как в добавленном позже коде выше. Т.е. в переменную y заносим то, что выберем из конкретного полного пути к файлу, а не просто счётчик.
"А в этой строке можно написать чтобы рассматривались только .TXT файлы? " - нет, да и не нужно - их ведь всё равно нужно проанализировать все (имя файла). А вот именно в этой функции можно заносить в словарь только текстовые. Но тогда нужно корректировать текст функции. Хотя принципиальной разницы нет, где проводить отбор - разве что если отбирать до заполнения словаря, то естественно словарь будет полегче. Но там ведь не миллион файлов? Пара сотен лишних строк погоды не сделает...
Ну тогда нужно делать иначе - выделять из пути к очередному файлу имя листа, далее DVN/MMS/MMS2, далее идём на этот лист, и выгружаем как в добавленном позже коде выше. Т.е. в переменную y заносим то, что выберем из конкретного полного пути к файлу, а не просто счётчик.
"А в этой строке можно написать чтобы рассматривались только .TXT файлы? " - нет, да и не нужно - их ведь всё равно нужно проанализировать все (имя файла). А вот именно в этой функции можно заносить в словарь только текстовые. Но тогда нужно корректировать текст функции. Хотя принципиальной разницы нет, где проводить отбор - разве что если отбирать до заполнения словаря, то естественно словарь будет полегче. Но там ведь не миллион файлов? Пара сотен лишних строк погоды не сделает...Hugo
"А в этой строке можно написать чтобы рассматривались только .TXT файлы? " - нет, да и не нужно - их ведь всё равно нужно проанализировать все (имя файла). А вот именно в этой функции
"А в этой строке можно написать чтобы рассматривались только .TXT файлы? " - нет, да и не нужно - их ведь всё равно нужно проанализировать все (имя файла). А вот именно в этой функции
А файлы .csv тоже можно так собирать ? там столбцов больше и в некоторых местах есть запятые которые макросом интерпретируются как разрыв столбца.
А файлы .csv тоже можно так собирать ? там столбцов больше и в некоторых местах есть запятые которые макросом интерпретируются как разрыв столбца.Evg72
Файл csv - это тот же текст, только с другим расширением. Так что тоже можно. И так даже правильнее их открывать - можно заранее задать формат столбцам, чтоб даты были в нужном виде, ведущие нули на месте, дроби не превращались в даты...
Файл csv - это тот же текст, только с другим расширением. Так что тоже можно. И так даже правильнее их открывать - можно заранее задать формат столбцам, чтоб даты были в нужном виде, ведущие нули на месте, дроби не превращались в даты...Hugo