Профессиональные приемы работы в Microsoft Excel

Пожалуйста, войдите или зарегистрируйтесь.


Расширенный поиск  

Новости:

К первому сообщению темы должен быть прикреплен файл примера в формате xls*.
Приложив пример, Вы избавите себя и других от вопросов типа "А какой критерий?", "А куда выводить результат?", "А сколько строк?" и все тех же просьб выложить файл. Рисовать за Вас Ваши же таблички с заданиями, а затем и решение к ним, никто желанием не горит. Да и, как показывает практика, в большинстве случаев без файла решения не найти.

Автор Тема: Сохранение файла в текстовом формате с именем взятым из ячейки  (Прочитано 4026 раз)

0 Пользователей и 1 Гость просматривают эту тему.

runner

  • Постоялец
  • ***
  • Уважение: +7/-0
  • Оффлайн Оффлайн
  • Сообщений: 145

Добрый день!
Нужно сохранить файл, с названием взятым из ячейки B1
(выглядеть должно как 20130419мотомир.txt)

в формате:
Текстовые файлы (с разделителями табуляции)

например, в папку:
C:\Users\Иванов\Documents\Заказы

VBA для меня пока = [записал макрос - посмотрел пошагово как работает - попытался что-то скорректировать] параллельно смотрю книжку.

Если мой вопрос совсем чайницкий - ткните носом, пожалуйста, куда посмотреть. Поиском по форуму похожего не нашёл.
Записан

Poltava

  • Старожил
  • ****
  • Уважение: +40/-0
  • Оффлайн Оффлайн
  • Сообщений: 543

Топорно но это второе что пришло в голову. Первым было SaveCopyAs но я удивился не обнаружив в этом методе возможности задания формата файла.
Option Explicit
Sub СохранитьАктивныйЛистКакТекстовыйФайл()
    Dim WbFname$, TFname$, Twb As Workbook
    ActiveWorkbook.Save 'Сохраняем активную книгу
    WbFname = ActiveWorkbook.FullName 'Запоминаем путь к активной книге
    TFname = Range("B1").Value 'Формируем имя файла
    'Сохраняем книгу при этом активная книга закрываеться и открываеться сохраненная
    ActiveWorkbook.SaveAs Filename:=TFname, FileFormat:=xlText, CreateBackup:=False
    Set Twb = ActiveWorkbook 'Запоминаем активну книгу в переменную
    Workbooks.Open WbFname 'Открываем ту книгу которая была активной
    Twb.Close False 'Закрываем книгу из переменной
End Sub
Записан
Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.

runner

  • Постоялец
  • ***
  • Уважение: +7/-0
  • Оффлайн Оффлайн
  • Сообщений: 145

Отлично работает!
Один вопрос=пожелание - как, всё-таки, сохранять файл не там где он есть, а там куда надо, просто прописав путь в макросе?
Записан

Poltava

  • Старожил
  • ****
  • Уважение: +40/-0
  • Оффлайн Оффлайн
  • Сообщений: 543

TFname = Range("B1").Value 'Формируем имя файлая же вроде прокомментировал код
TFname = "C:\" & Range("B1").Value
Записан
Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.

runner

  • Постоялец
  • ***
  • Уважение: +7/-0
  • Оффлайн Оффлайн
  • Сообщений: 145

Я в восторге!
Отдельное спасибо за подробности!
Записан

Poltava

  • Старожил
  • ****
  • Уважение: +40/-0
  • Оффлайн Оффлайн
  • Сообщений: 543

Если код будет в персонале либо в книге не являющейся экспортируемой то можно записать так
Option Explicit
Sub СохранитьАктивныйЛистКакТекстовыйФайл()
    Dim WbFname$, TFname$, Twb As Workbook
    ActiveWorkbook.Save 'Сохраняем активную книгу
    WbFname = ActiveWorkbook.FullName 'Запоминаем путь к активной книге
    TFname = Range("B1").Value 'Формируем имя файла
    'Сохраняем книгу при этом активная книга закрываеться и открываеться сохраненная
    ActiveWorkbook.SaveAs Filename:=TFname, FileFormat:=xlText, CreateBackup:=False
    Set Twb = ActiveWorkbook 'Запоминаем активну книгу в переменную
    ActiveWorkbook.Close False 'Закрываем книгу из переменной
    Workbooks.Open WbFname 'Открываем ту книгу которая была активной
End Sub
Записан
Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.

Crysi

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 4

Уважаемые форумчане,
Воспользовался данным примером но вот возникла следующая потребность:
Есть форма отчета и пытаюсь создать макрос для того, чтоб заполненная форма сохранялась с название из нескольких ячеек а не одной, допустим
TFname = Range("B9") & ("_") & Range("B10") & ("_") & Range("B11") & ".XLS"
Но он мне сохраняет файл с названием например 1_2_3, а можно ли чтоб вместо подчеркивания создавались пробелы-пустота и выглядело приблизительно так "1 2 3"?
И еще одно, каким методом можно созранять форму без макроса, т.е. чистую, чтоб не весила много?

Заранее спасибо.
Записан

boa

  • Глобальный модератор
  • Старожил
  • *****
  • Уважение: +32/-0
  • Оффлайн Оффлайн
  • Сообщений: 543
  • Доброта спасет мир...

Уважаемый, Crysi
вы бы создали новую тему и приложили бы свои старания "пытаюсь создать макрос"
Записан
Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

Crysi

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 4

Уважаемый boa,
Понял, сейчас все оформим.
Спасибо.
Записан
 



Темы без ответов

30.09.2018 10:24 Расчет процентов за определенный период (месяц) с учетом изменений и платежей 464
03.03.2018 00:00 Подсчет отработанного времени, за исключением заранее определенных перерывов 1266
14.02.2018 10:11 Подготовить читабельную отчетность по платежам 1264
23.01.2018 13:46 Найти вероятность повторной покупки 1150
12.01.2018 23:56 Сделать отчет на Power BI (Dashboard) 1614
06.09.2017 10:43 Solver VBA не решает гиперболическое уравнение, но при этом решает гармоническое 1416
17.08.2017 12:15 Гиперссылка и фильтр одновременно макрос 1807
23.05.2017 11:20 Копирование данных из одной таблицы в умную таблицу по условию 3609
15.03.2017 15:45 автозамена картинок PowerPoint 2046
11.03.2017 13:43 Изменить нумерацию страниц 2164





Яндекс цитирования msexcel.ru Яндекс.Метрика

Страница сгенерирована за 0.159 секунд. Запросов: 113.