Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2706
Благодарности: 1684

Профиль | Отправить PM | Цитировать


v79italya, зачем нужен этот макрос? Почему Вы привязаны к Excel? В чем конечная цель? Или Вам надо эту задачу решить в CMD?
Кастрировал vbs и превратил его в макрос Excel. Путь к папке указать явно.
Код: Выделить весь код
Sub AA()

BoxIn = "D:\Новая папка\папка"
FileIn = "^.*\.csv$"
Repl = "\n.*,null.*"

With CreateObject("Scripting.FileSystemObject")
    On Error Resume Next
        Set Folds = .GetFolder(BoxIn)
        If Err.Number <> 0 Then
            MsgBox "Ошибка при открытии папки" + vbCrLf + BoxIn + vbCrLf + vbCrLf + Err.Description
            Exit Sub
        End If
    On Error GoTo 0
    
    Set RegMaska = CreateObject("VBScript.RegExp")
    RegMaska.Pattern = FileIn
    RegMaska.IgnoreCase = True
    
    Set RegRepl = CreateObject("VBScript.RegExp")
    RegRepl.Pattern = Repl
    RegRepl.IgnoreCase = True
    RegRepl.Global = True
    
    Set Files = Folds.Files
    
    For Each jf In Files
        If RegMaska.Test(jf) Then
            On Error Resume Next
            Err.Number = 0
            Set fIn = .OpenTextFile(jf, 1, False)
            
            If Err.Number <> 0 Then
                MsgBox "Ошибка при открытии файла" + vbCrLf + .GetAbsolutePathName(jf) + vbCrLf + vbCrLf + Err.Description
                On Error GoTo 0
            Else
                Alls = ""
                Alls = fIn.ReadAll
                fIn.Close
                On Error GoTo 0
                If RegRepl.Test(Alls) Then
                    jfNew = jf.Path
                    If .FileExists(jf + ".bak") Then .DeleteFile jf + ".bak", True
'                    .MoveFile jf, jf + ".bak"       ' ==== Создание страх копии
                    
                    With .CreateTextFile(jfNew, True)
                        .Write (RegRepl.Replace(Alls, ""))
                        .Close
                    End With
                End If
            End If
        End If
    Next
End With
End Sub

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 26-03-2020 в 14:25.

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:51, 26-03-2020 | #37