Vba самопроизвольно меняет путь сохранения файлов и названия некоторых файлов, Vba самопроизвольно меняет путь сохранения файлов и названия некоторых файлов
Здравствуйте. Есть несложный скрипт. Получаю список всех файлов excel в указанной папке, по очереди открываю, делаю замену некоторых слов и закрываю. Сохранение происходит через .save. 1. Vba сохраняет изменённые файлы не с перезаписью оригиналов, а на уровень выше. Это странно, ведь используется команда .save, которая не подразумевает создание нового файла. 2. Имена файлов 1.xlsx и 2.xlsx превратились в 11 и 21.xlsx. Повторю, использовал команду .save. Вопрос: почему подробное может происходить? Windows 10. Если важно, запросы отключаю перед сохранением.
Код
'Список файлов на пакетную обработку
Function ScanFolder()
Dim sFolder As String, sFiles As String
Dim str As String
Dim s() As String
'диалог запроса выбора папки с файлами
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = False Then Exit Function
sFolder = .SelectedItems(1)
End With
sFolder = sFolder & IIf(Right(sFolder, 1) = Application.PathSeparator, "", Application.PathSeparator)
sFiles = Dir(sFolder & "*.xls*")
str = ""
Do While sFiles <> ""
'сохраняем полный путь в массив строк
If str = "" Then str = sFolder & sFiles Else str = str & "^" & sFolder & sFiles
sFiles = Dir()
Loop
s = Split(str, "^")
ScanFolder = s
End Function
Sub test()
Dim fls() As String 'файлы на обработку
Dim sFld As String 'запрашиваем адрес папки на сохранение
Application.ScreenUpdating = False
fls = ScanFolder()
'sFld = GetFolder("E:\Скрипты")
For Each f In fls()
'открываем книгу в новом окне
Set ww = Application.Workbooks.Add(f)
'ищем текст на земену и заменяем
ww.ActiveSheet.UsedRange.Replace "Мезеровский А.В.", "Шишкин С.Н."
Application.DisplayAlerts = False
ww.Save
ww.Close
Application.DisplayAlerts = True
Next f
Application.ScreenUpdating = True
End Sub