PDA

Показать полную графическую версию : Заполнение спецификации макросом


irkarimov
29-11-2016, 14:55
После заполнения спецификации, на вкладке штамп нажимаю сформировать спецификацию, частично макрос выполняется, потом появляется ошибка
кто может помогите решить эту проблему


'добавляем основной штамп
Worksheets(res).Activate
Worksheets(res).Shapes("group4").Select
Selection.Copy
Worksheets("Печать").Paste Destination:=Worksheets("Печать").Range(gr4range1 + CStr(crow + 28), gr4range2 + CStr(crow + 28))

'заполняем осн. штамп
Worksheets("Печать").Activate
ActiveSheet.Shapes("group4").Select
Application.Wait Time:=Now + TimeValue("0:00:01")
With ActiveSheet.Shapes("group4")
.IncrementLeft gr4incrlft
.IncrementTop gr4incrtp
End With
Selection.ShapeRange.Ungroup.Select
ActiveSheet.Shapes("Поле13").Select
Selection.Characters.Text = Worksheets("Штамп").Range("H2").Value
If Worksheets("options").Range("B2").Value = "1" Then
Selection.Font.Size = Worksheets("Штамп").Range("H2").Font.Size
End If
ActiveSheet.Shapes("Поле13").Name = "Поле4_13"
ActiveSheet.Shapes("Поле14").Select
Selection.Characters.Text = l
ActiveSheet.Shapes("Поле14").Name = "Поле4_14"


Debug указывает на эту строчку - ActiveSheet.Shapes("group4").Select

ошибка звучит так - Компонент с указанным именем не найден

okshef
29-11-2016, 21:35
irkarimov, посмотрел на 2016. Ошибок нет.
Совет. При формировании спецификаций используйте конструкцию
Application.ScreenUpdating=False
=ваш код=
Application.ScreenUpdating=True
а то все мелькает....

Iska
30-11-2016, 02:39
А у меня на 2003 вылетает раньше :), на:
Selection.CopyPicture Appearance:=xlPrinter, Format:=xlPicture
http://i.imgur.com/Qu7972z.png

irkarimov
30-11-2016, 06:56
у кого-то вылетает у кого то нет
у нас в офисе у всех вылетает

Заметил такую вещь что утро когда прихожу на работу к 8:30 эта специфа полностью работает
возможно ли что там защита какая нибудь или еще чего?

хотя тоже не понятно
2 раза прошло успешно
3ий раз с ошибкой
Worksheets("Печать").Paste Destination:=Worksheets("Печать").Range(gr4range1 + CStr(crow + 28), gr4range2 + CStr(crow + 28))

4 раз успешно
5ый раз с ошибкой
Worksheets("Печать").Paste Destination:=Worksheets("Печать").Range(gr4range1 + CStr(crow + 28), gr4range2 + CStr(crow + 28))

6,7 раз успешно

okshef
30-11-2016, 07:10
Я иногда замечал появление спонтанных ошибок при многократном использовании макросов... После перезапуска ошибка исчезала (на время). Может и в вашем случае происходит то же самое?

Iska
30-11-2016, 07:18
irkarimov, често сказать, там настолько коряво (не криво, а именно коряво: кривое форматирование, часть кода как была наспех записана макрорекордером — так и оставлена, что означают те или иные переменные, что делают те или иные процедуры и функции — ведомо токмо автору, код разбросан по куче модулей) написано, что и разбираться нет большого желания.




© OSzone.net 2001-2012