Есть макрос. Задача макроса найти строку по шаблону и использовать ее как название файла при его сохранении. Пример искомой строки "КП 1190 от 30.10.2017"
Проблема состоит в том, что при сохранении, фал не имеет расширения. Если сократить искомую строку до вида "КП 1190 от 30" , то файл имеет расширение. Думаю дело в точках в названии файла.
Помоги пожалуйста сделать так, чтобы расширение у файла таки появлялось при отработке макроса. А если конкретно то подскажите пожалуйста как в найденной строке изменить точки на тире при передаче значения в название. Ну или какой нибудь иной способ. Код
UPD: Макрос для Word
Код
Sub AutoClos654654e()
Dim i As Long 'счётчик искомых последовательностей
Dim verdict As Long 'ответ оператора
With Selection
.HomeKey wdStory 'ищем (имя) с начала документа
.Find.Wrap = wdFindStop 'поиск производим с остановкой на найденном
Do
.Find.Text = "^#^#^#^#^# от ^#^#.^#^#.^#^#^#^#" 'равносильно CTRL-F
.Find.Execute 'здесь выделено найденное (если есть)
verdict = MsgBox("Сохраняю " & ActiveDocument & " как " & .Text, vbOKCancel)
r = "КП " 'Статичный префикс который добавляется к найденному значению
If verdict = vbOK Then
ChangeFileOpenDirectory "D:\1"
ActiveDocument.SaveAs r & .Text, FileFormat:=wdFormatDoc 'сохранили
Exit Sub
Else
Exit Sub
' Exit Do
' Если открыть Exit Do, закрыв Exit Sub, будет появляться сообщение (рис. 2)
End If
i = i + 1
Loop Until Not .Find.Found
End With
If i = 0 Then MsgBox "Новое имя в " & ActiveDocument & " не найдено."
End Sub
Вы правы - форумом ошибся, но сделал это намеренно. Ведь не смотря на то, что макрос составлялся для ворда, мне кажется это общий вопрос и если тоже самое реализовать для экселя - получиться точно такая же проблема.
ActiveDocument.SaveAs r & .Text & ".doc", FileFormat:=wdFormatDoc 'сохранили
Правда, не совсем уверен в правильном расширении, т.к. не знаю значения wdFormatDoc. У меня такого нет и не было, знаю только wdFormatDocument(самое близкое к записанному у Вас).