Страницы: 1
RSS
Пропуск ошибок в макросе
 
Добрый день.
Есть книга в которой есть много листов до 35и их необходимо сохранять по папкам(каждый лист в свою папку).
Название листов у всех одинаковое
Проблема в том, что количество страниц всегда разное и если в макросе не находит данного листа выпадает ошибка.
Прошу помочь, доработать макрос, так, что если данного листа нет, то просто пропукал и переходил к следующим листам.

Вот макрос
ThisWorkbook.Sheets(Array("Москва")).Copy
   With ActiveWorkbook
   ActiveWorkbook.SaveCopyAs "C:\Temp\Москва.xlsx"
       End With
   ActiveWorkbook.Close savechanges:=False
 
Цитата
spector пишет:
Есть книга в которой есть много листов до 35и .... Название листов у всех одинаковое
Как это?
 
Пропуск ошибки On error resume next. Но вот что то смущает в Вашем макросе и описании его работы :D
 
Я имел ввиду, что название у страниц всегда остается одно и то же.. То есть у меня в макросе идет перечисление
ThisWorkbook.Sheets(Array("Москва")).Copy
With ActiveWorkbook
ActiveWorkbook.SaveCopyAs "C:\Temp\Москва.xlsx"
End With
ActiveWorkbook.Close savechanges:=False

ThisWorkbook.Sheets(Array("Калуга")).Copy
With ActiveWorkbook
ActiveWorkbook.SaveCopyAs "C:\Temp\Калуга.xlsx"
End With
ActiveWorkbook.Close savechanges:=False

И бывает, что 1-2 городов нет и выпадает ошибка. Как пропускать, чтоб макрос продолжал свою работу
 
Пробывал вставлять On error resume next., но не помогает, может подскажете как лучше будет изменить макрос
 
Код
Sub tt()
On Error Resume Next
    Dim sh1 As Worksheet
    Dim sh2 As Worksheet
    Set sh1 = ThisWorkbook.Sheets("Москва")
    Set sh2 = ThisWorkbook.Sheets("Калуга")
    
    If Not sh1 Is Nothing Then
        sh1.Copy
        With ActiveWorkbook
            ActiveWorkbook.SaveCopyAs "C:\Temp\Москва.xlsx"
        End With
        ActiveWorkbook.Close savechanges:=False
    End If

    If Not sh2 Is Nothing Then
    sh2.Copy
        With ActiveWorkbook
        ActiveWorkbook.SaveCopyAs "C:\Temp\Калуга.xlsx"
        End With
    ActiveWorkbook.Close savechanges:=False
    End If
End Sub
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
LightZ, а что это за конструкция такая?
Цитата
With ActiveWorkbook
ActiveWorkbook.SaveCopyAs "C:\Temp\Калуга.xlsx"
End With
 
Михаил С. , сам не знаю :D
автора макрос, я только проверку добавил, не обратив внимание на код вообще :)
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
Может так лучше будет?
Скрытый текст
Страницы: 1
Читают тему
Наверх