Страницы: 1
RSS
Выгрузка выделенного текста с помощью макроса., выгрузка в txt файл
 
Добрый день.
Подскажите пожалуйста с созданием макроса.
Параметры:
Есть сводная таблица:
11.07.20145136
7260
17.07.20145229
9280
24.07.20145158
6960
25.07.20146860
Конечная цель.
Необходимо чтобы при выделении ячейки и выполнении макроса, происходила выгрузка в формате .txt в место где хранится excel файл.
Как видно запись не одна и есть одно важное условие. При выгрузке, файл должен называться как дата слева от номеров.

Т.е. в идеальном варианте в исходя из таблицы выше, в месте где лежит файл excel, должно появиться 4 файла .txt.  с названиями дат, а внутри этих файлов должны быть номера относящиеся к этим датам.

Порывшись на форуме нашел вот такой макрос, но тут проблема в названии и при выделении и выполнении макроса, старый перезаписывается.
Помогите доработать пожалуйста.
Код
Sub ExportRange() Dim Filename As String 
Dim NumRows As Long, NumCols As Integer 
Dim r As Long, c As Integer 
Dim Data 
Dim ExpRng As Range 

Set ExpRng = Selection 
NumCols = ExpRng.Columns.Count 
NumRows = ExpRng.Rows.Count 
Filename = ThisWorkbook.Path & "\textfile.txt" 
Open Filename For Output As #1 
For r = 1 To NumRows 
For c = 1 To NumCols 
Data = ExpRng.Cells(r, c).Value 
If IsNumeric(Data) Then Data = Val(Data) 
If IsEmpty(ExpRng.Cells(r, c)) Then Data = "" 
If c <> NumCols Then 
Write #1, Data; 
Else 
Write #1, Data 
End If 
Next c 
Next r 
Close #1 
End Sub
Изменено: Vaizero - 02.04.2015 14:51:36
 
Данный макрос возможно сделать?
 
Цитата
Vaizero написал: Есть сводная таблица
Где она? Или Вы полагаете, что кто-то должен вслепую нарисовать таблицу, которая в точности соответствует по структуре Вашей?
 
11.07.2014
5136
7260
17.07.2014 5229
9280
24.07.2014 5158
6960
25.07.2014 6860
Изменено: Vaizero - 06.04.2015 14:55:47
 
И это таблица?
 
А зачем писать макрос, когда можно взять готовый?
http://excelvba.ru/code/Range2CSV
 
Цитата
Юрий М написал: И это таблица?
Таблица большая. Я написал часть строчек.
По поводу готового макроса. Я не понял что приводится в примерах которые по ссылкам.
В своем первом посте, Я написал макрос. И просьба у меня лишь в том, чтобы имя файла при выгрузке соответствовало дате слева от номеров. т.е. выделяю 5136 и 7260, нажимаю макрос и у меня появляется файл txt с именем 11.07.2014 и в самом фале друг под другом 5136, 7260. Это возможно?
 
Попробуйте
Код
Filename = ThisWorkbook.Path & "\" & selection(1).offset(,-1) & ".txt"
в остальное не вникал. Естественно в работе не проверял.
 
Цитата
Vaizero написал: Таблица большая. Я написал часть строчек.
Создайте НЕБОЛЬШОЙ файл-аналог и покажите его. В чём проблема?
 
Проблемы нет. Вот файл.
Как Вы понимаете, создавать вручную каждый txt для даты, очень долго.
Поэтому и возникла необходимость в таком макросе.
Как предложил HUGO, не получается. Ошибка 400.
 
Vaizero, кнопка цитирования не для ответа.
 
Vaizero, это исходный файл? Или то, что должно получиться? это явно не сводная... точнее, судя по всему, это сводная, только в текстовом виде.
Скрытый текст


попробуйте чуть изменить код Hugo:
Код
Filename = ThisWorkbook.Path & "" & format(Selection(1).Offset(,-1).PivotItem.Name, "yyyy-mm-dd") & ".txt"

в этом случае будет давать имя файла по дате для первой выделенной ячейки показателя.
Если планируете выделять для разных дат - надо запихнуть в цикл, через коллекцию или словарь...
F1 творит чудеса
Страницы: 1
Наверх