Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Office (Word, Excel, Outlook и т.д.) (http://forum.oszone.net/forumdisplay.php?f=115)
-   -   Заполнение спецификации макросом (http://forum.oszone.net/showthread.php?t=321259)

irkarimov 29-11-2016 14:55 2691471

Заполнение спецификации макросом
 
После заполнения спецификации, на вкладке штамп нажимаю сформировать спецификацию, частично макрос выполняется, потом появляется ошибка
кто может помогите решить эту проблему

Код:

'добавляем основной штамп
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 2691578

irkarimov, посмотрел на 2016. Ошибок нет.
Совет. При формировании спецификаций используйте конструкцию
Код:

Application.ScreenUpdating=False
=ваш код=
Application.ScreenUpdating=True

а то все мелькает....

Iska 30-11-2016 02:39 2691615

А у меня на 2003 вылетает раньше :), на:
Скрытый текст
Код:

Selection.CopyPicture Appearance:=xlPrinter, Format:=xlPicture

irkarimov 30-11-2016 06:56 2691645

у кого-то вылетает у кого то нет
у нас в офисе у всех вылетает

Заметил такую вещь что утро когда прихожу на работу к 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 2691646

Я иногда замечал появление спонтанных ошибок при многократном использовании макросов... После перезапуска ошибка исчезала (на время). Может и в вашем случае происходит то же самое?

Iska 30-11-2016 07:18 2691648

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


Время: 22:31.

Время: 22:31.
© OSzone.net 2001-