[ID CC-CC2021] PlaceAsset

aleksasha

Топикстартер
15 лет на форуме
Сообщения
316
Реакции
5
PlaceAsset довольно редко в примерах подается. Разобраться сам не могу. Пишу на VBScript.
Следующая строчка выдает ошибку:
Код:
...
Set myFound = myDoc.FindText
Set myLabel = myID.Libraries(1).Assets("Label4").PlaceAsset(myFound(1).InsertionPoints(1))
...

Argument Not Optional

а какой аргумент еще здесь требуется вставить?

При этом элемент библиотеки вставляется, но с этой ошибкой.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 137
Реакции
10 835
Vbs - хтоническое зло, отлаживать на нем программу - для сильных духом мазохистов.
Разбейте выражение во второй строке на несколько частей и локализуйте ошибку.
Или, если все и так работает, не заморачивайтесь, а просто поставьте заглушку на On Error
 
Последнее редактирование:
  • Спасибо
Реакции: aleksasha

К.Т.

Участник
Сообщения
323
Реакции
337
Не ручаюсь, но возможно, во второй строке надо убрать Set, поскольку возвращается не объект, а массив.
 
  • Спасибо
Реакции: aleksasha

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 137
Реакции
10 835
Не ручаюсь, но возможно, во второй строке надо убрать Set, поскольку возвращается не объект, а массив.
Навряд ли, тогда бы ошибка была совсем другая, да и не работало бы вообще
 
  • Спасибо
Реакции: aleksasha

aleksasha

Топикстартер
15 лет на форуме
Сообщения
316
Реакции
5
Vbs - хтоническое зло, отлаживать на нем программу - для сильных духом мазохистов.
Разбейте выражение во второй строке на несколько частей и локализуйте ошибку.
Или, если все и так работает, не заморачивайтесь, а просто поставьте заглушку на On Error
Мне потом нужно применить к объекту стиль, поэтому On Error только ошибку уберет. :(
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 137
Реакции
10 835
  • Спасибо
Реакции: aleksasha

aleksasha

Топикстартер
15 лет на форуме
Сообщения
316
Реакции
5
Не ручаюсь, но возможно, во второй строке надо убрать Set, поскольку возвращается не объект, а массив.
Без Set всё то же самое.
В сети только на такое наткнулся в плане примеров placeasset
JavaScript:
try {

   for (i = 0; i < myFound.length; i++) {

      myIcon = myLib.assets.itemByName("winieta_tr").placeAsset (myFound[i].insertionPoints[-2])[0];

      myIcon.appliedObjectStyle = myObjectStyle;

     // myFound[i].remove ();

      }

   }
Но этот пример на JS мне не помог.
 

aleksasha

Топикстартер
15 лет на форуме
Сообщения
316
Реакции
5
Тогда ищите откуда ноги растут у ошибки разбивая
Вот так ошибки нет, но элемент библиотеки ставится в "произвольном" месте. А не в инсершн поинт.
Код:
myLabel = myID.Libraries(1).Assets("Label4").PlaceAsset myDoc
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 137
Реакции
10 835
Ну разбейте строку:

Set mf=myFound( 1 )
Set ip=mf.InsertionPoints( 1 )
На что ругается?
 
  • Спасибо
Реакции: aleksasha

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 137
Реакции
10 835

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 137
Реакции
10 835
  • Спасибо
Реакции: Chiga и aleksasha

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 137
Реакции
10 835
Наверное даже так можно
Set myFound = myDoc.FindText(False)
 

aleksasha

Топикстартер
15 лет на форуме
Сообщения
316
Реакции
5
И подскажите мне неграмотному, что означает [0] перед точкой с запятой в строке JS:
JavaScript:
myIcon = myLib.assets.itemByName("winieta_tr").placeAsset (myFound[i].insertionPoints[-2])[0];
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 137
Реакции
10 835
PlaceAsset возвращает массив
Присваивается первый элемент его
 
  • Спасибо
Реакции: aleksasha

aleksasha

Топикстартер
15 лет на форуме
Сообщения
316
Реакции
5
PlaceAsset возвращает массив
Присваивается первый элемент его
Дык может и мне нужно это указать? Но я не пойму как именно здесь.
Код:
Set myLabel = myID.Libraries(1).Assets("Label4").PlaceAsset(myFound(1).InsertionPoints(1))
 

aleksasha

Топикстартер
15 лет на форуме
Сообщения
316
Реакции
5
Дык может и мне нужно это указать? Но я не пойму как именно здесь.
Код:
Set myLabel = myID.Libraries(1).Assets("Label4").PlaceAsset(myFound(1).InsertionPoints(1))
Действительно. Добавил .Item(1) и ошибка пропала. Но теперь я получаю совсем не группу объектов из библиотеки, а string. А мне нужно после помещения элемента библиотеки присвоить ему объектный стиль. Может подскажете на каком этапе можно это сделать?
 
Последнее редактирование: