1

Каждый день я получаю отчет в формате .csv и ежедневно копирую данные на вкладку "ВВОД" на моей электронной таблице. Данные на этой вкладке продолжают расти с каждым днем вместе с информацией, и я импортирую эти данные:

  • Нажав на последний ряд на вкладке "ВХОД"
  • Получить внешние текстовые данные
  • Импортируйте CSV с помощью; в качестве моего разделителя и ввода данных из строки 2 на палатах
  • Отформатировать текст в шрифт Calibri 8pt

У всех CSV-файлов есть список соглашений об именовании с приращением даты, поэтому:

20130826_Summary_Report.csv 
20130827_Summary_Report.csv
20130828_Summary_Report.csv

Вероятно, мы просматриваем около 5000 строк данных в день, и хотя это не самая трудоемкая задача, мы ищем способы упростить этот процесс.

Можно ли как-нибудь создать макрос, который будет извлекать из папки последний файл .csv и автоматически импортировать данные, используя описанный выше процесс?

1 ответ1

1

Вы можете использовать рабочие книги.OpenText метод для ввода в новый лист, а затем сделать листы.Переместите метод для переноса в текущую рабочую книгу (даже после вкладки "ВВОД").

Поскольку вы упомянули, что делаете это ежедневно, способ автоматического извлечения текущего CSV-файла будет следующим:

Dim inputfilepath As String
inputfile = ActiveWorkbook.Path & "\" & Format(Date, "yyyymmdd") & ".csv"
'open file
Workbooks.OpenText Filename:=inputfile

Вы можете указать параметры для.OpenText, который устанавливает разделители .csv и другие параметры, которые соответствуют вашему файлу .csv.

Затем можно начать копирование в последнюю строку на вкладке "ВХОД", автоматически найдя последнюю строку с помощью метода Range.end:

Worksheets("INPUT").Range("A1").End(xlDown).Offset(1).Select

Это предполагает, что у вас нет пробелов в информации в столбце A, и вы переходите к ячейке после последней ячейки с информацией - то же самое, что выбрать A1, а затем выполнить Ctrl-down.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .