|
|
|
CodeModule или Я торможу страшно!
|
|||
|---|---|---|---|
|
#18+
Не, правда, че-то я не пойму. Помогите разобраться, пожалуйста. Вот макрос на Excel2000 - VBA. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. "Ee" (по отладчику) возвращает "Модуль25". Именно так - не "object", а чистый "string"(?!)... В хелпе сказано:авторCodeModule Property Returns an object representing the code behind the component. Read-only. Хочу написать Код: plaintext Код: plaintext 1. 2. 3. Теперь пишу: Код: plaintext Так где же тот "object", о котором хелп? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2009, 15:37:24 |
|
||
|
CodeModule или Я торможу страшно!
|
|||
|---|---|---|---|
|
#18+
Robertino, Name - cвойство по-умолчанию для CodeModule "злой Бил Гейц" сделал его скрытым в обжект браузере - надо сказать ему show hidden - и Вы его увидите поэтому, когда Вы пишете Код: plaintext А когда: Код: plaintext Но чтобы не ломать голову (хорошо, если над своим кодом, а не над чужим) - обычно переменные декларируют соотв. типом - и ошибок не возникает (или возникают при компиляции). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2009, 16:06:13 |
|
||
|
CodeModule или Я торможу страшно!
|
|||
|---|---|---|---|
|
#18+
Robertino, object на месте. Значение объектной переменной надо присваивать оператором Set, а не Let (в 99.9999% случаев слово Let опускают, см. хелп). Что происходит сейчас: переменная Ee не описана - скорее всего не используется Option Explicit, значит Ee в месте первого использования неявно объявляется как Variant; поскольку используется оператор Let, обращение идёт не к объекту, а к его свойству по умолчанию; свойством по умолчанию для класса CodeModule является скрытое строковое свойство Name; в итоге получается вариант строкового подтипа, который не имеет, конечно же, методов или свойств. Рекомендации: 1) в каждом модуле использовать Option Explicit, использовать опцию Require Variable Declaration; 2) явно описывать переменные; 3) явно типизировать переменные, для чего 4) подключать в диалоге References соответствующие библиотеки типов (в данном случае "Microsoft Visual Basic for Applications Extensibility #.#"); 5) активно использовать Object Browser (F2); 6) включить в контекстном меню последнего опцию Show Hidden Members. Удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2009, 16:18:10 |
|
||
|
CodeModule или Я торможу страшно!
|
|||
|---|---|---|---|
|
#18+
Чёрт, зря старался :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2009, 16:26:52 |
|
||
|
CodeModule или Я торможу страшно!
|
|||
|---|---|---|---|
|
#18+
13-й квартал, спасибо, классно! Вот что значит - пятница... "Закон потерянного дюйма" (Мэрфи) :)) Переписал. Напечатал. Повесил на стенку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2009, 16:30:43 |
|
||
|
CodeModule или Я торможу страшно!
|
|||
|---|---|---|---|
|
#18+
13-й кварталЧёрт, зря старался :)Е-е-й, в чем дело?! ты о чем? Если обо мне, - так я просто тащусь и таю... Напиши куда, - пришлю мороженого... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2009, 16:33:39 |
|
||
|
CodeModule или Я торможу страшно!
|
|||
|---|---|---|---|
|
#18+
Robertino, он просто проиграл на кнопке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2009, 16:36:54 |
|
||
|
CodeModule или Я торможу страшно!
|
|||
|---|---|---|---|
|
#18+
Следовал советам 13-го ... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Но "Ee" - все также "Module25" !!! А последняя строка также вылетает с ошибкой... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2009, 16:53:18 |
|
||
|
CodeModule или Я торможу страшно!
|
|||
|---|---|---|---|
|
#18+
В последнем моем посте, конечно, строка с последним With - лишняя, попала по недосмотру. Из текста я ее убрал... Но все остальное - правда :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2009, 16:55:37 |
|
||
|
CodeModule или Я торможу страшно!
|
|||
|---|---|---|---|
|
#18+
13-й квартал Рекомендации: 1) в каждом модуле использовать Option Explicit, использовать опцию Require Variable Declaration; 2) явно описывать переменные; 3) явно типизировать переменные, для чего 4) подключать в диалоге References соответствующие библиотеки типов (в данном случае "Microsoft Visual Basic for Applications Extensibility #.#"); 5) активно использовать Object Browser (F2); 6) включить в контекстном меню последнего опцию Show Hidden Members. RobertinoСледовал советам 13-го...врете! напишите Dim Ee As CodeModule ЗЫ "Dim Yu, Em, Yy, Npp, Ym, Ec As Integer" - тут все кроме Ec описано как variant - со всеми вытекающими. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2009, 16:58:58 |
|
||
|
CodeModule или Я торможу страшно!
|
|||
|---|---|---|---|
|
#18+
qwrqwrврете! напишите Dim Ee As CodeModule ЗЫ "Dim Yu, Em, Yy, Npp, Ym, Ec As Integer" - тут все кроме Ec описано как variant - со всеми вытекающими.Да уж, соврамши :( Весьма благодарен за напоминание! Боюсь показаться занудой, но Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2009, 09:35:30 |
|
||
|
CodeModule или Я торможу страшно!
|
|||
|---|---|---|---|
|
#18+
RobertinoБоюсь показаться занудой, но Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2009, 17:28:02 |
|
||
|
|

start [/forum/topic.php?fid=61&fpage=190&tid=2179246]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
77ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 233ms |
| total: | 430ms |

| 0 / 0 |
