Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2013, 02:44   #1
Shhh
Новичок
Джуниор
 
Регистрация: 07.11.2013
Сообщений: 2
Восклицание Ошибка vba

помогите пожалуйста, при первом запуске, макрос выполняет всё без нареканий, при повторном.... выдает ошибку в строке "Windows("Книга1").Activate"

нужно к утру..прошу вашей помощи!!!

вот код
Код:

Sub Макрос1()
'
' Макрос записан 29.10.2013 (luk)
'
' Сочетание клавиш: Ctrl+у
'

Workbooks.Add
 Sheets("Лист3").Select
 Sheets.Add
 Sheets("Лист3").Select
 Sheets.Add
 Sheets("Лист5").Select
 Sheets("Лист5").Move After:=Sheets(5)
 Sheets("Лист4").Select
 Sheets("Лист4").Move After:=Sheets(4)
 Sheets("Лист1").Select
 Sheets("Лист1").Name = "Понедельник"
Sheets("Лист2").Select
 Sheets("Лист2").Name = "Вторник"
Sheets("Лист3").Select
 Sheets("Лист3").Name = "Среда"
Sheets("Лист4").Select
 Sheets("Лист4").Name = "Четверг"
Sheets("Лист5").Select
 Sheets("Лист5").Name = "Пятница"


 ' активируем базу, фильтруем по непустым и по возрастанию, выделяем диапазон и копируем в новый файл на лист Понедельник

Windows("ТЕКУЩАЯ.xls").Activate
 Selection.AutoFilter field:=5, Criteria1:="<>"
 Range("A2:N120").Sort Key1:=Range("E2"), Order1:=xlAscending, Header:= _
 xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
 DataOption1:=xlSortNormal
 Range("A2:N120").Select
 Selection.Copy
 Workbooks("Книга1").Activate
 Sheets("Понедельник").Select
 Range("A4").Select
 ActiveSheet.Paste
 Cells.Select
 Selection.Font.ColorIndex = 0


 ' форматируем лист Понедельник

Range("E5:E120").Select
 Application.CutCopyMode = False
 Selection.Copy
 Range("A5").Select
 ActiveSheet.Paste
 Columns("C:I").Select
 Application.CutCopyMode = False
 Selection.Delete Shift:=xlToLeft
 Columns("B:B").ColumnWidth = 70
 Selection.ColumnWidth = 70
 Columns("D:D").Select
 Selection.ColumnWidth = 50
 Columns("E:E").ColumnWidth = 40
 Columns("F:F").ColumnWidth = 10
 Columns("G:G").ColumnWidth = 35

 ' делаем запись Понедельник

Range("B2").Select
 ActiveCell.FormulaR1C1 = "Понедельник"
Range("B2").Select
 Selection.Borders(xlDiagonalDown).LineStyle = xlNone
 Selection.Borders(xlDiagonalUp).LineStyle = xlNone
 With Selection.Borders(xlEdgeLeft)
 .LineStyle = xlContinuous
 .Weight = xlMedium
 .ColorIndex = xlAutomatic
 End With
 With Selection.Borders(xlEdgeTop)
 .LineStyle = xlContinuous
 .Weight = xlMedium
 .ColorIndex = xlAutomatic
 End With
 With Selection.Borders(xlEdgeBottom)
 .LineStyle = xlContinuous
 .Weight = xlMedium
 .ColorIndex = xlAutomatic
 End With
 With Selection.Borders(xlEdgeRight)
 .LineStyle = xlContinuous
 .Weight = xlMedium
 .ColorIndex = xlAutomatic
 End With
 With Selection.Font
 .Name = "Arial Cyr"
 .Size = 12
 .Strikethrough = False
 .Superscript = False
 .Subscript = False
 .OutlineFont = False
 .Shadow = False
 .Underline = xlUnderlineStyleNone
 .ColorIndex = xlAutomatic
 End With
 Selection.Font.Bold = True

 ' возвращаем базу в исходное состояние

Windows("ТЕКУЩАЯ.xls").Activate
 Selection.AutoFilter field:=5
 Range("A2:N120").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:= _
 xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
 DataOption1:=xlSortNormal
Shhh вне форума Ответить с цитированием
Старый 07.11.2013, 02:49   #2
Shhh
Новичок
Джуниор
 
Регистрация: 07.11.2013
Сообщений: 2
По умолчанию

продолжение
Код:
' далее повторяем для каждого дня недели

  ' Автоматическое сохранение маршрута ТП в папку Маршруты по паспортизации
     
        Filename = "\\ХХХХХХХХХ\1" & [B1] & ".xls"
    Range("B2").Select
        
    Windows("Книга1").Activate
    Sheets("Понедельник").Select
    
    ' сохраняем файл под заданным  в переменной filename именем в формате XLS
    ActiveWorkbook.SaveAs Filename
    
    MsgBox ("Файл сохранен в папке Маршруты ТП по паспортизации!!!")
     
  
End Sub
Shhh вне форума Ответить с цитированием
Старый 07.11.2013, 12:34   #3
simples
Форумчанин
 
Регистрация: 03.10.2013
Сообщений: 142
По умолчанию

У Вас пока выполняется первая копия макроса имя Книга1 занято.
Вам надо получать имя новой книги в строчке
Код:
Workbooks.Add
а в строчке
Код:
Workbooks("Книга1").Activate
использовать его
simples вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA Ошибка 1004 WiZzarD94 Помощь студентам 0 09.10.2013 22:28
Ошибка в VBA :( NataBekker Помощь студентам 1 24.05.2013 01:07
vba в чем ошибка hata77 Microsoft Office Excel 2 20.09.2012 14:18
VBA - где-то ошибка Nasten'ka7 Microsoft Office Excel 10 02.02.2011 13:48
Ошибка в VBA (Excel) Tomoa Помощь студентам 4 26.03.2010 00:16