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

Вход

Регистрация

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

 

= Мир MS Excel/Переименовать файлы. - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Переименовать файлы.
Mark1976 Дата: Воскресенье, 01.03.2026, 20:12 | Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 834
Репутация: 3 ±
Замечаний: 0% ±

Excel 2010, 2013
Здравствуйте участники форума. Необходимо макросом переименовать 19 файлов.

Наименования файлов каждый день будут меняться, но только после второго знака _ (например этот текст: 29122025%20(2))
Надо заменить: OOMS_cz_29122025%20(2) на Центры здоровья, OOMS_dialis_29122025%20(3) на Объемы по диализу, OOMS_dispd_29122025 на Плановые задания по диспансеризации детей. Пример замены в приложенном файле. Заранее спасибо за решение.
К сообщению приложен файл: pereimenovat_fajly.xlsx (8.8 Kb)


Сообщение отредактировал Mark1976 - Воскресенье, 01.03.2026, 20:13
 
Ответить
СообщениеЗдравствуйте участники форума. Необходимо макросом переименовать 19 файлов.

Наименования файлов каждый день будут меняться, но только после второго знака _ (например этот текст: 29122025%20(2))
Надо заменить: OOMS_cz_29122025%20(2) на Центры здоровья, OOMS_dialis_29122025%20(3) на Объемы по диализу, OOMS_dispd_29122025 на Плановые задания по диспансеризации детей. Пример замены в приложенном файле. Заранее спасибо за решение.

Автор - Mark1976
Дата добавления - 01.03.2026 в 20:12
vanin00 Дата: Понедельник, 02.03.2026, 05:12 | Сообщение № 2
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 9 ±
Замечаний: 0% ±

365
Так хотели?
К сообщению приложен файл: pereimenovat_fajly.xlsm (18.6 Kb)


vanin00
 
Ответить
СообщениеТак хотели?

Автор - vanin00
Дата добавления - 02.03.2026 в 05:12
Mark1976 Дата: Понедельник, 02.03.2026, 11:10 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 834
Репутация: 3 ±
Замечаний: 0% ±

Excel 2010, 2013
vanin00, да. Отлично. Спасибо. Но 2 файла не переименовались. OOMS_sahdiab_29122025%20(2), OOMS_dispnab_29122025%20(2). Эти файлы исходники имеют расширение .xls Видимо по этой причине они и не переименовались.


Сообщение отредактировал Mark1976 - Понедельник, 02.03.2026, 20:33
 
Ответить
Сообщениеvanin00, да. Отлично. Спасибо. Но 2 файла не переименовались. OOMS_sahdiab_29122025%20(2), OOMS_dispnab_29122025%20(2). Эти файлы исходники имеют расширение .xls Видимо по этой причине они и не переименовались.

Автор - Mark1976
Дата добавления - 02.03.2026 в 11:10
Mark1976 Дата: Понедельник, 02.03.2026, 15:45 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 834
Репутация: 3 ±
Замечаний: 0% ±

Excel 2010, 2013
vanin00, скажите. Если необходимо будет отредактировать "выходные" файлы, как это сделать?
 
Ответить
Сообщениеvanin00, скажите. Если необходимо будет отредактировать "выходные" файлы, как это сделать?

Автор - Mark1976
Дата добавления - 02.03.2026 в 15:45
Mark1976 Дата: Понедельник, 02.03.2026, 20:16 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 834
Репутация: 3 ±
Замечаний: 0% ±

Excel 2010, 2013
Пытался это [vba]
Код
oldName = Cells(i, 1).Value & ".xlsx"
[/vba] заменить на это [vba]
Код
oldName = Dir(folderPath & Cells(i, 1).Value & ".xls*")
[/vba]
Файлы поменяли название, но при их открытии эксель ругается, что файл поврежден.
 
Ответить
СообщениеПытался это [vba]
Код
oldName = Cells(i, 1).Value & ".xlsx"
[/vba] заменить на это [vba]
Код
oldName = Dir(folderPath & Cells(i, 1).Value & ".xls*")
[/vba]
Файлы поменяли название, но при их открытии эксель ругается, что файл поврежден.

Автор - Mark1976
Дата добавления - 02.03.2026 в 20:16
MikeVol Дата: Понедельник, 02.03.2026, 22:50 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 470
Репутация: 113 ±
Замечаний: 0% ±

MSO LTSC 2021 EN
Mark1976, Пробуйте данный вариант. [vba]
Код
Option Explicit

Sub RenameFiles()

    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "Выберите папку с файлами"

        If .Show = -1 Then
            
            Dim folderPath As String
            folderPath = .SelectedItems(1) & "\"
        Else
            MsgBox "Папка не выбрана."
            Exit Sub
        End If

    End With

    On Error GoTo CleanExit
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    Dim i           As Long
    i = 1

    Do While Cells(i, 1).Value <> ""
        
        Dim renamedCount As Long
        Dim skippedCount As Long

        Dim oldName As String
        oldName = Trim(Cells(i, 1).Value)

        Dim newName As String
        newName = Trim(Cells(i, 2).Value)

        ' Ищем файл с любым расширением
        Dim fileFound As String
        fileFound = Dir(folderPath & oldName & ".*")

        If fileFound = "" Then
            skippedCount = skippedCount + 1
        Else

            ' Получаем расширение
            Dim fileExt As String
            fileExt = Mid(fileFound, InStrRev(fileFound, "."))

            Dim fullOldPath As String
            fullOldPath = folderPath & fileFound

            Dim fullNewPath As String
            fullNewPath = folderPath & newName & fileExt

            ' Проверка — существует ли файл с новым именем
            If Dir(fullNewPath) <> "" Then
                skippedCount = skippedCount + 1
            Else
                Name fullOldPath As fullNewPath
                renamedCount = renamedCount + 1
            End If

        End If

        i = i + 1

    Loop

CleanExit:
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True

    If Err.Number <> 0 Then
        MsgBox "Ошибка: " & Err.Description, vbCritical
    Else
        MsgBox "Готово!" & vbCrLf & _
                "Переименовано: " & renamedCount & vbCrLf & _
                "Пропущено: " & skippedCount, _
                vbInformation
    End If

End Sub
[/vba]


Ученик.
Одесса - Украина
 
Ответить
СообщениеMark1976, Пробуйте данный вариант. [vba]
Код
Option Explicit

Sub RenameFiles()

    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "Выберите папку с файлами"

        If .Show = -1 Then
            
            Dim folderPath As String
            folderPath = .SelectedItems(1) & "\"
        Else
            MsgBox "Папка не выбрана."
            Exit Sub
        End If

    End With

    On Error GoTo CleanExit
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    Dim i           As Long
    i = 1

    Do While Cells(i, 1).Value <> ""
        
        Dim renamedCount As Long
        Dim skippedCount As Long

        Dim oldName As String
        oldName = Trim(Cells(i, 1).Value)

        Dim newName As String
        newName = Trim(Cells(i, 2).Value)

        ' Ищем файл с любым расширением
        Dim fileFound As String
        fileFound = Dir(folderPath & oldName & ".*")

        If fileFound = "" Then
            skippedCount = skippedCount + 1
        Else

            ' Получаем расширение
            Dim fileExt As String
            fileExt = Mid(fileFound, InStrRev(fileFound, "."))

            Dim fullOldPath As String
            fullOldPath = folderPath & fileFound

            Dim fullNewPath As String
            fullNewPath = folderPath & newName & fileExt

            ' Проверка — существует ли файл с новым именем
            If Dir(fullNewPath) <> "" Then
                skippedCount = skippedCount + 1
            Else
                Name fullOldPath As fullNewPath
                renamedCount = renamedCount + 1
            End If

        End If

        i = i + 1

    Loop

CleanExit:
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True

    If Err.Number <> 0 Then
        MsgBox "Ошибка: " & Err.Description, vbCritical
    Else
        MsgBox "Готово!" & vbCrLf & _
                "Переименовано: " & renamedCount & vbCrLf & _
                "Пропущено: " & skippedCount, _
                vbInformation
    End If

End Sub
[/vba]

Автор - MikeVol
Дата добавления - 02.03.2026 в 22:50
  • Страница 1 из 1
  • 1
Поиск:

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