Доброе утро! Имею файл с ячейкой C7, в которой содержится полезная информация для наименования файла, при сохранении: 2-32-1 Ф ЯМ*4-525-3Д1* ФЕВРАЛЬ 2016г.*"КС-3 "Гагарацкая". КЦ-2".Строительные работы блок-бокса трансформаторной подстанции 2КТП-ЭП-400/10/0,4-УХЛ1 (107г) (Доп. к смете 4-525-3 №14303606, кн.16) -158 064*, 32 Система магистральных газопроводов Бованенково - Ухта. Данные ячейки C7 разделены знаком "*". Необходимо сохранить файл в любом месте в экселе со стандартным расширением используя в названии: "букву Р", "пробел", "данные до первой звёздочки", "три пробела", "данные между первой и второй звёздочкой", "три пробела", "цифры перед четвёртой звёздочкой (иногда со знаком минуса)" Пример названия файла: "Р 2-32-1 Ф ЯМ 4-525-3Д1 -158 064"
Доброе утро! Имею файл с ячейкой C7, в которой содержится полезная информация для наименования файла, при сохранении: 2-32-1 Ф ЯМ*4-525-3Д1* ФЕВРАЛЬ 2016г.*"КС-3 "Гагарацкая". КЦ-2".Строительные работы блок-бокса трансформаторной подстанции 2КТП-ЭП-400/10/0,4-УХЛ1 (107г) (Доп. к смете 4-525-3 №14303606, кн.16) -158 064*, 32 Система магистральных газопроводов Бованенково - Ухта. Данные ячейки C7 разделены знаком "*". Необходимо сохранить файл в любом месте в экселе со стандартным расширением используя в названии: "букву Р", "пробел", "данные до первой звёздочки", "три пробела", "данные между первой и второй звёздочкой", "три пробела", "цифры перед четвёртой звёздочкой (иногда со знаком минуса)" Пример названия файла: "Р 2-32-1 Ф ЯМ 4-525-3Д1 -158 064"Yar4i4
A = Split([c7], "*") For i = Len(A(3)) To 1 Step -1 If Mid$(A(3), i, 1) Like "[!- 0-9]" Then Exit For Next fn = "Р " & A(0) & " " & A(1) & " " & Trim$(Mid$(A(3), i + 1))
[/vba]
Оно - [vba]
Код
A = Split([c7], "*") For i = Len(A(3)) To 1 Step -1 If Mid$(A(3), i, 1) Like "[!- 0-9]" Then Exit For Next fn = "Р " & A(0) & " " & A(1) & " " & Trim$(Mid$(A(3), i + 1))
нееее, я же первые шаги делаю в этом. Добавил в последнюю строку - работает.
Но проверил на других файлах - сохраняет так как надо (наименование файла как надо), но сохраняет в непонятном расширении. Приложил файл эксель "2" и файл с непонятным расширением "Р 2-28-1 Ф ЯМ л.с.6-15-1-1р 49 692"
нееее, я же первые шаги делаю в этом. Добавил в последнюю строку - работает.
Но проверил на других файлах - сохраняет так как надо (наименование файла как надо), но сохраняет в непонятном расширении. Приложил файл эксель "2" и файл с непонятным расширением "Р 2-28-1 Ф ЯМ л.с.6-15-1-1р 49 692"Yar4i4
Среди значений, которые идут на наименование файла попадаются знаки не пригодные в Виндовс в качестве наименования файла. * \ / или " и макрос не срабатывает. Есть ли какой-то механизм позволяющий обойти, перескочить. ка-то так, только более органично: if i содержит * or\or / or " then Delete
Среди значений, которые идут на наименование файла попадаются знаки не пригодные в Виндовс в качестве наименования файла. * \ / или " и макрос не срабатывает. Есть ли какой-то механизм позволяющий обойти, перескочить. ка-то так, только более органично: if i содержит * or\or / or " then DeleteYar4i4
[/vba] Я через функцию нашёл, но хочется в макросе... [vba]
Код
Sub Сохранить() ActiveWorkbook.SaveAs "C:\Documents and Settings\Мои документы\" & Replace_symbols(Range("B2")) & ".xlsm" End Sub
[/vba] [vba]
Код
Function Replace_symbols(ByVal txt As String) As String St$ = "~!@#$%^&*=|`'""" For i% = 1 To Len(St$) txt = Replace(txt, Mid(St$, i, 1), "_") Next Replace_symbols = txt End Function
[/vba] Я через функцию нашёл, но хочется в макросе... [vba]
Код
Sub Сохранить() ActiveWorkbook.SaveAs "C:\Documents and Settings\Мои документы\" & Replace_symbols(Range("B2")) & ".xlsm" End Sub
[/vba] [vba]
Код
Function Replace_symbols(ByVal txt As String) As String St$ = "~!@#$%^&*=|`'""" For i% = 1 To Len(St$) txt = Replace(txt, Mid(St$, i, 1), "_") Next Replace_symbols = txt End Function