Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Название файла+дата - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Название файла+дата (Макросы/Sub)
Название файла+дата
Volodya Дата: Среда, 05.07.2017, 11:35 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Всем привет.

Нужен макрос, который будет сохранять файл с следующим названием: B(СЕГОДНЯШНЯЯ ДАТА В ФОРМАТЕ DDMMYY, БЕЗ ВСЯКИХ РАЗДЕЛИТЕЛЕЙ)W
То есть, название сохраненного файла должно быть примерно таким: B050717W.xls

Использовал такой код, взятый на этом же форуме:
[vba]
Код

Dim strA As String 'Текущий адрес книги на ПК
Dim strB As String 'Имя книги без формата
Dim strC As String 'Формирование даты + формата

strA = ThisWorkbook.Path & "\"
strB = Left(ThisWorkbook.Name, InStr(1, ThisWorkbook.Name, ".xls") - 1)
strC = "_" & Replace(Str(Date), ".", "") & ".xlsb"

'Сшиваем заготовку из частей
ThisWorkbook.SaveAs Filename:=strA & strB & strC
[/vba]
Проблема лишь в том, что макрос у меня находится в одном файле, а информацию, которую нужно сохранить с заданным именем - в другом. Данный макрос работает, но сохраняется файл, в котором записан макрос.

Пробовал заменить [vba]
Код
ThisWorkbook.Name
[/vba],[vba]
Код
ThisWorkbook.Path
[/vba] на имя файла и путь к файлу соответственно, но не помогло.
 
Ответить
СообщениеВсем привет.

Нужен макрос, который будет сохранять файл с следующим названием: B(СЕГОДНЯШНЯЯ ДАТА В ФОРМАТЕ DDMMYY, БЕЗ ВСЯКИХ РАЗДЕЛИТЕЛЕЙ)W
То есть, название сохраненного файла должно быть примерно таким: B050717W.xls

Использовал такой код, взятый на этом же форуме:
[vba]
Код

Dim strA As String 'Текущий адрес книги на ПК
Dim strB As String 'Имя книги без формата
Dim strC As String 'Формирование даты + формата

strA = ThisWorkbook.Path & "\"
strB = Left(ThisWorkbook.Name, InStr(1, ThisWorkbook.Name, ".xls") - 1)
strC = "_" & Replace(Str(Date), ".", "") & ".xlsb"

'Сшиваем заготовку из частей
ThisWorkbook.SaveAs Filename:=strA & strB & strC
[/vba]
Проблема лишь в том, что макрос у меня находится в одном файле, а информацию, которую нужно сохранить с заданным именем - в другом. Данный макрос работает, но сохраняется файл, в котором записан макрос.

Пробовал заменить [vba]
Код
ThisWorkbook.Name
[/vba],[vba]
Код
ThisWorkbook.Path
[/vba] на имя файла и путь к файлу соответственно, но не помогло.

Автор - Volodya
Дата добавления - 05.07.2017 в 11:35
_Boroda_ Дата: Среда, 05.07.2017, 11:38 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 10829
Репутация: 4473 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Замените ThisWorkbook на Workbooks("Другая_книга")
Пример
[vba]
Код
strA = Workbooks("Другая книга.xlsb").Path & "\"
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЗамените ThisWorkbook на Workbooks("Другая_книга")
Пример
[vba]
Код
strA = Workbooks("Другая книга.xlsb").Path & "\"
[/vba]

Автор - _Boroda_
Дата добавления - 05.07.2017 в 11:38
Manyasha Дата: Среда, 05.07.2017, 11:45 | Сообщение № 3
Группа: Модераторы
Ранг: Старожил
Сообщений: 1896
Репутация: 780 ±
Замечаний: 0% ±

Excel 2010, 2016
Или переписать для активной книги:
[vba]
Код
Sub t()
Dim strA As String 'Текущий адрес книги на ПК
Dim strB As String 'Имя книги без формата
Dim strC As String 'Формирование даты + формата
With ActiveWorkbook
    strA = .Path & "\"
    strB = Left(.Name, InStr(1, .Name, ".xls") - 1)
    strC = "_" & Replace(Str(Date), ".", "") & ".xlsb"
    
    'Сшиваем заготовку из частей
    .SaveAs Filename:=strA & strB & strC, FileFormat:=xlExcel12
End With
End Sub
[/vba]


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеИли переписать для активной книги:
[vba]
Код
Sub t()
Dim strA As String 'Текущий адрес книги на ПК
Dim strB As String 'Имя книги без формата
Dim strC As String 'Формирование даты + формата
With ActiveWorkbook
    strA = .Path & "\"
    strB = Left(.Name, InStr(1, .Name, ".xls") - 1)
    strC = "_" & Replace(Str(Date), ".", "") & ".xlsb"
    
    'Сшиваем заготовку из частей
    .SaveAs Filename:=strA & strB & strC, FileFormat:=xlExcel12
End With
End Sub
[/vba]

Автор - Manyasha
Дата добавления - 05.07.2017 в 11:45
AndreTM Дата: Среда, 05.07.2017, 11:49 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1540
Репутация: 444 ±
Замечаний: 0% ±

2003 & 2010
И лучше все же дату задавать в формате YYMMDD :)


Donate: Qiwi: 9517375010
 
Ответить
СообщениеИ лучше все же дату задавать в формате YYMMDD :)

Автор - AndreTM
Дата добавления - 05.07.2017 в 11:49
Volodya Дата: Среда, 05.07.2017, 11:59 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Manyasha, сделал по вашему примеру. Теперь выдает ошибку в строке:
[vba]
Код
.SaveAs Filename:=strA & strB & strC, FileFormat:=xlExcel12
[/vba]
 
Ответить
СообщениеManyasha, сделал по вашему примеру. Теперь выдает ошибку в строке:
[vba]
Код
.SaveAs Filename:=strA & strB & strC, FileFormat:=xlExcel12
[/vba]

Автор - Volodya
Дата добавления - 05.07.2017 в 11:59
Volodya Дата: Среда, 05.07.2017, 12:00 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
AndreTM, к сожалению поставщик требует дату в именно таком формате, который я описал выше ;)
 
Ответить
СообщениеAndreTM, к сожалению поставщик требует дату в именно таком формате, который я описал выше ;)

Автор - Volodya
Дата добавления - 05.07.2017 в 12:00
Manyasha Дата: Среда, 05.07.2017, 12:03 | Сообщение № 7
Группа: Модераторы
Ранг: Старожил
Сообщений: 1896
Репутация: 780 ±
Замечаний: 0% ±

Excel 2010, 2016
Volodya, а если убрать FileFormat:=xlExcel12?
На файле с каким расширением Вы запускаете макрос?


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеVolodya, а если убрать FileFormat:=xlExcel12?
На файле с каким расширением Вы запускаете макрос?

Автор - Manyasha
Дата добавления - 05.07.2017 в 12:03
Volodya Дата: Среда, 05.07.2017, 12:08 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Manyasha, убрал, все получилось, кроме того, что имя сохраняемого файла должно быть "ВДАТАW", а у меня имяфайлакоторыйсохраняю_дата.
Расширение файла .xls


Сообщение отредактировал Volodya - Среда, 05.07.2017, 12:10
 
Ответить
СообщениеManyasha, убрал, все получилось, кроме того, что имя сохраняемого файла должно быть "ВДАТАW", а у меня имяфайлакоторыйсохраняю_дата.
Расширение файла .xls

Автор - Volodya
Дата добавления - 05.07.2017 в 12:08
_Boroda_ Дата: Среда, 05.07.2017, 12:14 | Сообщение № 9
Группа: Модераторы
Ранг: Местный житель
Сообщений: 10829
Репутация: 4473 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Filename:=strA & strB & strC
А так у Вас и раньше не должно было получаться.
В этой конструкции strB лишнее
Нужно так

[vba]
Код
Filename:=strA & strC
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Filename:=strA & strB & strC
А так у Вас и раньше не должно было получаться.
В этой конструкции strB лишнее
Нужно так

[vba]
Код
Filename:=strA & strC
[/vba]

Автор - _Boroda_
Дата добавления - 05.07.2017 в 12:14
Volodya Дата: Среда, 05.07.2017, 12:18 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, в этой строке пытался приписать в конец названия W. Если подскажите как это сделать, буду благодарен.
 
Ответить
Сообщение_Boroda_, в этой строке пытался приписать в конец названия W. Если подскажите как это сделать, буду благодарен.

Автор - Volodya
Дата добавления - 05.07.2017 в 12:18
_Boroda_ Дата: Среда, 05.07.2017, 12:24 | Сообщение № 11
Группа: Модераторы
Ранг: Местный житель
Сообщений: 10829
Репутация: 4473 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Выше, там, где назначаем strC, перепишите вот так
[vba]
Код
strC = "B" & Replace(Str(Date), ".", "") & "W.xlsb"
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеВыше, там, где назначаем strC, перепишите вот так
[vba]
Код
strC = "B" & Replace(Str(Date), ".", "") & "W.xlsb"
[/vba]

Автор - _Boroda_
Дата добавления - 05.07.2017 в 12:24
Volodya Дата: Среда, 05.07.2017, 12:31 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, не помогло. Теперь он W использует в виде разделителя. Получается B05W07W2017
 
Ответить
Сообщение_Boroda_, не помогло. Теперь он W использует в виде разделителя. Получается B05W07W2017

Автор - Volodya
Дата добавления - 05.07.2017 в 12:31
_Boroda_ Дата: Среда, 05.07.2017, 12:35 | Сообщение № 13
Группа: Модераторы
Ранг: Местный житель
Сообщений: 10829
Репутация: 4473 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Покажите СВОЙ код. Вы куда W вставили? Вовнутрь Реплейса? Зачем?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПокажите СВОЙ код. Вы куда W вставили? Вовнутрь Реплейса? Зачем?

Автор - _Boroda_
Дата добавления - 05.07.2017 в 12:35
Volodya Дата: Среда, 05.07.2017, 12:37 | Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, все, получись. Огромное спасибо
 
Ответить
Сообщение_Boroda_, все, получись. Огромное спасибо

Автор - Volodya
Дата добавления - 05.07.2017 в 12:37
Volodya Дата: Среда, 05.07.2017, 13:05 | Сообщение № 15
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, подскажите еще, пожалуйста.

В названии файла выводится дата в формате DDMMYYYY, а нужна в формате DDMMYY.

Попробовал так:
[vba]
Код
strC = "_" & Replace(Str(Format(Date, "DDMMYY")), ".", "") & ".xls
[/vba]

Теперь он показывает название файла как B 50717W

Не понятно откуда появляется пробел
 
Ответить
Сообщение_Boroda_, подскажите еще, пожалуйста.

В названии файла выводится дата в формате DDMMYYYY, а нужна в формате DDMMYY.

Попробовал так:
[vba]
Код
strC = "_" & Replace(Str(Format(Date, "DDMMYY")), ".", "") & ".xls
[/vba]

Теперь он показывает название файла как B 50717W

Не понятно откуда появляется пробел

Автор - Volodya
Дата добавления - 05.07.2017 в 13:05
_Boroda_ Дата: Среда, 05.07.2017, 13:12 | Сообщение № 16
Группа: Модераторы
Ранг: Местный житель
Сообщений: 10829
Репутация: 4473 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
уберите Str, Вам достаточно Формата
[vba]
Код
strC = "_" & Replace(Format(Date, "DDMMYY"), ".", "") & ".xls"
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщениеуберите Str, Вам достаточно Формата
[vba]
Код
strC = "_" & Replace(Format(Date, "DDMMYY"), ".", "") & ".xls"
[/vba]

Автор - _Boroda_
Дата добавления - 05.07.2017 в 13:12
Volodya Дата: Среда, 05.07.2017, 13:19 | Сообщение № 17
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_,
Сделал вот так. Тоже получилось
[vba]
Код
strB =Format(Date, "DDMMYY")
strC = "_" & Replace((StrB), ".", "") & ".xls"
[/vba]
 
Ответить
Сообщение_Boroda_,
Сделал вот так. Тоже получилось
[vba]
Код
strB =Format(Date, "DDMMYY")
strC = "_" & Replace((StrB), ".", "") & ".xls"
[/vba]

Автор - Volodya
Дата добавления - 05.07.2017 в 13:19
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Название файла+дата (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2017 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!