Коллеги, добрый день!
Обращаюсь к вам за помощью. Учусь писать макросы, но случился затык на проигрыше макроса.
Его суть -
1. Создать листы с определенными названия Name Source & Name Change - это работает.
2. Перевести формулы в значения - это работает.
3. Перед тем как добавить новые листы, необходимо проверить существование аналогичных и выдать сообщение - либо не существует и создать, либо существует и переименовать. - 1ая проверка проходит,
а вот на второй проверке выходит ошибка.
Буду признательна за помощь и разъяснения
Весь код макроса ниже:
Обращаюсь к вам за помощью. Учусь писать макросы, но случился затык на проигрыше макроса.
Его суть -
1. Создать листы с определенными названия Name Source & Name Change - это работает.
2. Перевести формулы в значения - это работает.
3. Перед тем как добавить новые листы, необходимо проверить существование аналогичных и выдать сообщение - либо не существует и создать, либо существует и переименовать. - 1ая проверка проходит,
Код |
---|
If Not Sh_Exist(ActiveWorkbook, cPhChName + " source") Then ' ActiveWorkbook.Sheets.Add(, ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)).Name = "Новый лист" MsgBox ("лист не существует") Sheets("Chain Info (КАМ) (2)").Select Sheets("Chain Info (КАМ) (2)").Name = cPhChName + " source" '"Magnit source" Else MsgBox ("лист <" + cPhChName + " source" + "> существует. переименуйте!") |
Буду признательна за помощь и разъяснения
Весь код макроса ниже:
Код |
---|
Sub KAM_Template() ' ' KAM_Template Макрос ' ' Sheets("Chain Info (КАМ)").Select cPhChName = Range("E1").Value ' = "Magnit" Sheets("Chain Info (КАМ)").Copy Before:=Sheets(12) 'заменяем формулы на значения Cells.Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False Application.CutCopyMode = False ''''''''''''''''''''''''''''''''''' Sheets("Chain Info (КАМ) (2)").Copy Before:=Sheets(13) 'перед переименованием провести проверку названий Листов ' Sub Add_New_Sheet() If Not Sh_Exist(ActiveWorkbook, cPhChName + " source") Then ' ActiveWorkbook.Sheets.Add(, ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)).Name = "Новый лист" MsgBox ("лист не существует") Sheets("Chain Info (КАМ) (2)").Select Sheets("Chain Info (КАМ) (2)").Name = cPhChName + " source" '"Magnit source" Else MsgBox ("лист <" + cPhChName + " source" + "> существует. переименуйте!") ' Exit Sub ' End If ' End Sub If Not Sh_Exist(ActiveWorkbook, cPhChName + " changes") Then MsgBox ("лист не существует") Sheets("Chain Info (КАМ) (2)").Select Sheets("Chain Info (КАМ) (2)").Name = cPhChName + " changes" '"Magnit changes" Else MsgBox ("лист <" + cPhChName + " changes" + "> существует. переименуйте!") Exit Sub End If Range("H17").Select End Sub 'Функция проверки листов Function Sh_Exist(wb As Workbook, sName As String) As Boolean Dim wsSh As Worksheet On Error Resume Next Set wsSh = wb.Sheets(sName) Sh_Exist = Not wsSh Is Nothing End Function Sub Macross_give_name() ' ' Macross_give_name Макрос ' ' Range("E1").Select ActiveCell.FormulaR1C1 = "Magnit" Range("E2").Select ActiveWorkbook.Save Sheets("Template source").Select Range("D1").Select Sheets("Template source").Select Sheets("Chain Info (КАМ)").Select ActiveWindow.ScrollWorkbookTabs Sheets:=-1 Range("E1").Select Sheets("Template Difference").Select Range("H4").Select End Sub |