ОБСУЖДЕНИЕ

Как передать значение поля в процедуру из библиотеке скриптов

9 ответов 5,9 тыс.
AI-выжимка обсуждения скоро
Статус
Закрыто для дальнейших ответов.
Здавствуйте, у меня вот такой вопрос

Подцепил директивой use "MyProc" процедуру из библиотеке скриптов


Код:
sub MyProc(MyVal as variant) 
'тут чего-то делаем
end sub

вызываю

Код:
Set CurrentUIDoc = CurrentUIWorkspace.CurrentDocument
Set CurrentDoc = CurrentUIDoc.Document
'MyID - поле документа
Call MyProc(CurrentDoc.MyID) - здесь ошибка несовпадения типов "Type Mismatch"

Получилось передать значение только изменив параметр в процедуре на стринг и передав значение поля через промежуточную строковую переменную. Но это мне кажется как-то криво.

Подскажите, как лучше сделать.
 
а что мешает использовать функцию преобразования в cтроку Cstr ???
 
Для: Hedg
Хотелось бы передавать ссылку на поле или его значение, а уже приобразовывать внутри процедуры. Можно ли так делать?
 
Как мне видиться
Код:
Call MyProc(Cstr(CurrentDoc.MyID))
 
Для: Hedg
Поменял
Код:
sub MyProc(MyVal as string)
Вызываю
Код:
Call MyProc(Cstr(CurrentDoc.MyID))
Всё равно "Type Mismatch"
 
А вот так
Код:
Call MyProc(Cstr(CurrentDoc.MyID(0)))
 
<!--QuoteBegin-rm2005+24:04:2007, 14:54 -->
<span class="vbquote">(rm2005 @ 24:04:2007, 14:54 )</span><!--QuoteEBegin-->Хотелось бы передавать ссылку на поле или его значение, а уже приобразовывать внутри процедуры. Можно ли так делать?
[snapback]63279" rel="nofollow" target="_blank[/snapback]​
[/quote]
только если передать процедуре сам документ
 
Для: Hedg
Спасибо, так работает. А если в поле состоит из 2 строк, можно ли передать?
Call MyProc(Cstr(CurrentDoc.MyID.text))
не работает.

Для: Ogion7
Буду делать через документ.
 
Для: rm2005
Если строк больше чем одна, то так работаь не будет.
 
если тама список, можно через ForAll
 
Статус
Закрыто для дальнейших ответов.

Статистика тем

Создано
rm2005,
Последний ответ от
Ogion7,
Ответы
9
Просмотры
5 912