помогите с макросом для Эксель
Модератор: Naeel Maqsudov
- Busine2009
- Сообщения: 322
- Зарегистрирован: 18 июл 2009, 15:34
- Контактная информация:
dissonance
куда скопированный лист девать?
куда скопированный лист девать?
-
- Сообщения: 9
- Зарегистрирован: 13 май 2010, 20:58
содержимое предыдущего листа необходимо скопировать в новый лист (который создает макрос)
-
- Сообщения: 9
- Зарегистрирован: 13 май 2010, 20:58
Busine2009, твой код не работает. так как внутренняя нумерация листов Экселя не совпадает с нумерацией имен листов.и что потом делается с этим листом? Зачем он копируется?
Кроме первого пункта (т.к. смысл не понятен)
эксель создает лист с названием "83", а должен "1071" и стопориться в строчке указания даты.
прилагаю скрин чтобы было понятней.
-
- Сообщения: 9
- Зарегистрирован: 13 май 2010, 20:58
помогите дописать, плиз. тем более основная часть уже написана
- Busine2009
- Сообщения: 322
- Зарегистрирован: 18 июл 2009, 15:34
- Контактная информация:
dissonance
Макрос копирует самый последний лист и вставляет его в самом конце.
Макрос копирует самый последний лист и вставляет его в самом конце.
Код: Выделить всё
Sub Макрос1()
Sheets(Sheets.Count).Copy after:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = Sheets(Sheets.Count - 1).Name + 1
Sheets(ActiveWorkbook.Sheets.Count).Range("A1").Value = "10У-" & ActiveWorkbook.Sheets.Count
ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count).Range("A2").Value = Date
End Sub
-
- Сообщения: 9
- Зарегистрирован: 13 май 2010, 20:58
Busine2009, спасибо что помогаешь!
но вот какая шляпа:
Вот такая же фигня..дата и номер листа нормально вставляются. а вот с нумерацией бардак. я скрин прикладывал, думаю по нему понятно будет из-за чего.

dissonance писал(а):Busine2009, твой код не работает. так как внутренняя нумерация листов Экселя не совпадает с нумерацией имен листов.
эксель создает лист с названием "83", а должен "1071"
прилагаю скрин чтобы было понятней.
Вот такая же фигня..дата и номер листа нормально вставляются. а вот с нумерацией бардак. я скрин прикладывал, думаю по нему понятно будет из-за чего.
Так попробуйте:
Код: Выделить всё
Sub Макрос1 ()
Application.ScreenUpdating = False
Sheets(Sheets.Count).Copy after:=Sheets(Sheets.Count)
With ActiveSheet
.Name = Val(Sheets(Sheets.Count - 1).Name) + 1
.[A1].Value = "10У-" & .Name
.[A2].Value = Date
End With
Application.ScreenUpdating = True
End Sub
- Busine2009
- Сообщения: 322
- Зарегистрирован: 18 июл 2009, 15:34
- Контактная информация:
dissonance
окончательный вариант:
окончательный вариант:
Код: Выделить всё
Sub Макрос1()
Application.ScreenUpdating = False
Sheets(Sheets.Count).Copy after:=Sheets(Sheets.Count)
With ActiveSheet
.Name = Val(Sheets(Sheets.Count - 1).Name) + 1
.[A1].Value = "10У-" & .Name
.[A2].Value = Date
.PageSetup.FitToPagesWide = 1
.PageSetup.FitToPagesTall = 1
End With
Application.ScreenUpdating = True
End Sub
-
- Сообщения: 9
- Зарегистрирован: 13 май 2010, 20:58
теперь выдает ошибку что нельзя присвоить листу такое же имя и создает в начале книги лист с именем "995(2)" , "995(3)"....(995 - первый лист в книге. нумерация начинается с него)Busine2009 писал(а):dissonance
окончательный вариант:Код: Выделить всё
Sub Макрос1() Application.ScreenUpdating = False Sheets(Sheets.Count).Copy after:=Sheets(Sheets.Count) With ActiveSheet .Name = Val(Sheets(Sheets.Count - 1).Name) + 1 .[A1].Value = "10У-" & .Name .[A2].Value = Date .PageSetup.FitToPagesWide = 1 .PageSetup.FitToPagesTall = 1 End With Application.ScreenUpdating = True End Sub
-
- Сообщения: 9
- Зарегистрирован: 13 май 2010, 20:58
извините что отвечаю поздно. попробовал на новом Экселевском файле - все работает! огромное человеческое спасибо всем кто писал этот макрос.


