Страницы: 1
RSS
Оптимизация импорта из csv
 
Доброго времени суток. Прошу помочь мне облегчить макрос записанный через авто запись.
Макрос выполняет импорт файла (файл всегда с одинаковой структурой,но разный по количеству записей ),выполняет импорт только нужных столбцов,после чего форматирование полученных столбцов. Код ужасно напрягает ПК.
код здесь
 
Прошу прощение за полотно.
Помогите облегчить 2 момента в этом процессе(ну или больше так как я не силен)
1.
Код
 "TEXT;G:\1PB_PRIVM_201306141_RUB.csv", Destination:=Range("$A$1"))
        .Name = "1PB_PRIVM_201306141_RUB_1"

В каталоге G:\ - в данном случае - будет всегда один файл csv возможно завязаться на папку а не на имя файла.
Папка - в которой находится файл exel
Изменено: Marat_Mamedov - 21.06.2013 23:00:27
 
2.
При форматирование
Код
 Columns("A:A").Select
я всегда выбираю весь столбец. Видел примеры где макрос работает  только там где есть значения а пустые ячейки не трогает, но пытался его сюда прикрутить он ломается ((
 
С второй просьбой разобрался через
Код
Range("A2:A500").Select
просто ограничил диапазон (так как больше не бывает, а если будет просто увеличу до A1000)
но с первой не получается пробовал таким образом
Код
            With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;G:\Соберем_из_dbf\", Destination:=Range("$A$2"))
        .Name = "*.csv"

ругается что не верно синтаксис подозреваю что в Name = не может быть "*.csv"
подскажите как правильно это сделать . в этой папке будет только один файл csv но имя постоянно меняться. Как можно это реализовать
 
Может возможно импорт файла "*.csv" их каталога (папки) в которой рабочий файл exel.
Дело в том что у меня есть два файла csv и dbf + рабочая книга exel(лежат в одной папке) . Файл dbf автоматом вытягивается из папки где рабочая книга exel так как они лежат вместе  (нашел пример у вас на форме, он вытягивает вне зависимости адреса папки), а вот csv файл у меня не получается так настроить. Надеюсь на вашу помощь.
Изменено: Marat_Mamedov - 22.06.2013 19:58:57
 
А Excel напрямую csv не открывает?
 
открывает, но мне нужно не просто открыть, а импортировать в файл Excel, и вот тут у меня засада так как:  
1.имя файла всегда разное из дня в день
2.каждый сотрудник положит рабочую папку куда захочет  (с файлом Excel куда импортирот производится , csv,dbf в разные места. Кто то на раб. стол кто то в каталог диска)
 
Скрытый текст

тут есть и dbf и csv и access и excel
Спасибо
 
Для меня это нереально сложно ((( ... попробую разобраться
 
Что то не выходит из примера  кода  Дмитрия  получить желаемый результат.
подскажите пожалуйста как можно внедрить (может вообще не возможно) в этот код
Код
 With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;G:\1PB_PRIVM_201306141_RUB.csv", Destination:=Range("$A$1"))
        .Name = "1PB_PRIVM_201306141_RUB_1"

этот фрагмент кода иморта DBF файла
Код
Set BazaWb = ThisWorkbook
        Set BazaSht = BazaWb.Sheets("CSV")
        iPath = BazaWb.Path & "\"   'путь к папке с файлами dbf
        iTempFileName = Dir(iPath & "*.dbf")    'перебор всех файлов dbf

код из примерана сайте
 
Может кому пригодится, конечно не то что было задумано но все же по расширен . Как указать путь который равен папке в которой файл Exel не знаю  
Код
Sub Макрос3()
Dim MyName$
MyName = Dir("G:\Соберем_из_dbf\" & "\*.csv")
      With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;G:\Соберем_из_dbf\" & MyName, Destination:=Range("$A$2"))
        .Name = "*"
Изменено: Marat_Mamedov - 24.06.2013 00:10:28
 
Цитата
Marat_Mamedov пишет:
Как указать путь который равен папке в которой файл Exel
ThisWorkbook.Path
 
пробовал заменить G:\Соберем_из_dbf\ на ThisWorkbook.Path много раз но мне постоянно ругается(((
как правильно его вставит ? в кавычках пробовал не работает (но не подсвечивает), без кавычек подсвечивает
 
Наверное, разговор о ПОЛНОМ пути? Тогда: ThisWorkbook.FullName
 
Код
Sub Макрос3()
Dim MyName$
MyName = Dir(ActiveWorkbook.Path & "\*.csv") 'путь к папке с файлами работает
      With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;G:\Соберем_из_dbf\" & MyName, Destination:=Range("$A$2")) 'путь к папке с файлами не получается внедрить 
        .Name = "*"

Так работает правильно, Подскажите как подставить ActiveWorkbook.Path в этот фрагмент With ActiveSheet.QueryTables.Add(Connection:= _
       "TEXT;G:\Соберем_из_dbf\" & MyName, Destination:=Range("$A$2"))
Страницы: 1
Наверх