|
2 простые процедуры. Одна вызывает другую. Что не так?
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Что должно происходить. Excel. Макрос(?). Для текущей строки на текущем листе текущей таблицы берётся значение в ячейке столбца N. Далее в другой таблице просматривается столбец E. В случае совпадения, берётся значение ячейки столбца A совпавшей строки и вставляется в ячейку столбца O текущей таблицы, текущей строки. Код: vbnet 1. 2.
- редактор подсвечивает красным. требует := Если написать (заведомо бред) Код: vbnet 1. 2.
, то возникает ошибка во время выполнения. Как правильно. И отличаются ли чем-нибудь := от =? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2012, 11:57 |
|
2 простые процедуры. Одна вызывает другую. Что не так?
|
|||
---|---|---|---|
#18+
Правильно — не называть переменные и функции русскими именами. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2012, 11:59 |
|
2 простые процедуры. Одна вызывает другую. Что не так?
|
|||
---|---|---|---|
#18+
А просто функции листа вас не устраивают? Давно и надолго забытый ПРОСМОТР() , или ПОИСКПОЗ() ? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2012, 12:02 |
|
2 простые процедуры. Одна вызывает другую. Что не так?
|
|||
---|---|---|---|
#18+
Перевёл этот кавардак. А в предварительном просмотре всё нормально было. Antonariy, А почему тогда MS сама все макросы русскими именами называет? Я в VB - вообще ничего не соображаю. Программирую на C++. А тут надо такую штуку сделать... Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Что должно происходить. Excel. Макрос(?). Для текущей строки на текущем листе текущей таблицы берётся значение в ячейке столбца N. Далее в другой таблице просматривается столбец E. В случае совпадения, берётся значение ячейки столбца A совпавшей строки и вставляется в ячейку столбца O текущей таблицы, текущей строки. Код: vbnet 1. 2.
- редактор подсвечивает красным. требует := Если написать (заведомо бред) Код: vbnet 1. 2.
, то возникает ошибка во время выполнения. Как правильно. И отличаются ли чем-нибудь := от =? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2012, 12:07 |
|
2 простые процедуры. Одна вызывает другую. Что не так?
|
|||
---|---|---|---|
#18+
Set a = Вставить_из_др_таблицы_при_совпадении — это получение значения от функции. Public Sub Вставить_из_др_таблицы_при_совпадении — это объявление процедуры, а не функции. Процедуры не возвращают значений. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2012, 12:11 |
|
2 простые процедуры. Одна вызывает другую. Что не так?
|
|||
---|---|---|---|
#18+
AntonariySet a = Вставить_из_др_таблицы_при_совпадении — это получение значения от функции. Public Sub Вставить_из_др_таблицы_при_совпадении — это объявление процедуры, а не функции. Процедуры не возвращают значений. DymanoskyЕсли написать (заведомо бред) Это я знаю. Я методом тыка пытаюсь нати ошибку. Почему Код: vbnet 1. 2.
подствечивается красным и он требует CompilerExpected: = ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2012, 12:16 |
|
2 простые процедуры. Одна вызывает другую. Что не так?
|
|||
---|---|---|---|
#18+
отличаются ли чем-нибудь := от =?:= используется при поименной передаче параметров процедурам, дает возможность писать параметры в произвольном порядке. Удобно, когда параметров более 9000 и большая часть из них необязательна, плохой тон в остальных случаях. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2012, 12:16 |
|
2 простые процедуры. Одна вызывает другую. Что не так?
|
|||
---|---|---|---|
#18+
DymanovskyЭто я знаю. Я методом тыка пытаюсь нати ошибку. Ааа. Либо Код: vbnet 1.
либо Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2012, 12:18 |
|
2 простые процедуры. Одна вызывает другую. Что не так?
|
|||
---|---|---|---|
#18+
Call помогло. Убрал Set'ы. Теперь выглядит так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Теперь пишет Invalid qualifier Код: vbnet 1.
и выделяет targetSheet ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2012, 12:46 |
|
2 простые процедуры. Одна вызывает другую. Что не так?
|
|||
---|---|---|---|
#18+
targetSheet as String В VBA строка не является объектом. Можно объявить As Variant, если нужно возвращать значение через параметр. Или объявить в процедуре новую переменную соответствующего объектного типа. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2012, 12:52 |
|
2 простые процедуры. Одна вызывает другую. Что не так?
|
|||
---|---|---|---|
#18+
Ошибся... назвал 2 переменные одним именем Заменил в объявлении функции targetSheet на targetSheetName и Код: vbnet 1.
. Только теперь он здесь при выполнении выдаёт "Object doesnt support this property or method" Смотрел в справку. Метод Worksheets есть. возвращает лист по его имени. Почему он не может мне этот лист вернуть в переменную? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2012, 14:39 |
|
2 простые процедуры. Одна вызывает другую. Что не так?
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2012, 14:41 |
|
2 простые процедуры. Одна вызывает другую. Что не так?
|
|||
---|---|---|---|
#18+
DymanovskyПочему он не может мне этот лист вернуть в переменную?Объектные переменные присваиваются с помощью ключевого слова Set. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2012, 14:46 |
|
|
start [/forum/topic.php?fid=60&msg=37926372&tid=2157495]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 286ms |
total: | 432ms |
0 / 0 |