SERGE_BLIZNUK
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору CEMEH Цитата: Надо полагать, что после Then, else надо писать с новой строки? А значки "[", "]"?? А что значит End if? | 1) ВНИМАТЕЛЬНЕЕ читайте сообщения! Цитирую сам себя: "в [] то, что может быть опущено... " разжевываю - квадратными скобочками я обозначил необязательные элементы, т.е. то, что может быть убрано (опущено)... 2) очень, очень, очень рекомендую открыть данный топик - Версия для печати и почитай примеры чужого кода. Поверьте, что процентов на 80% того, что я знаю и умею в VBA, это благодаря чтению/анализу чужого кода... 3) End if - это завершение условной конструкции. Подумайте сами, ведь нужно же компилятору языка узнать, что закончилась ветка, которую нужно выполнять при соблюдения условия if <условие> then. В синтасисе языков программирования существует только нескольк способом указать, какой блок попадает в if then - либо операторные скобки (в Pascal/Delphi - begin ... end, в Си,Java - { .. } ... ) либо завершающий оператор, который указывает, что всё, баста, веточка закончилась. в данном случае это и есть end if Цитата: Цитата: ну, это не проблема. dim A As String | Что это значит? переменная А - текст? А просто, с первой строки (без этого объявления)я не могу написать Let А= "Вася Пупкин"? Выдаст ошибку? | это выдаст ошибку, если в опциях VBA у вас стоит обязательно требовать описания переменных (меню Tools - Options - [ ] Require Variable Declaration) Кстати, может Ваша проблема в том, что вы путаете русские/английские буквы!??!?!!!! в данном примере Let А= "Вася Пупкин" - А - набрана в русской расскадке! разумеется, что когда Вы пишете Cells(Lastrow, 8).Value = А, то А ДОЛЖНА БЫТЬ ТОЖНО ТАКАЯ ЖЕ!!! Кстати, включение опции "Требовать описание переменных" как раз эту проблему и решит! Т.к. либо как вы опишете переменную, так Вы её будете использовать, либо, если описали в английской, а использовать пытаетесь русскую - компилятор остановится в месте использования и справедливо обматерит Вас!! и вообще, использование русских букв в именах переменных - это грубо и некультурно. и уж, как минимум, Вы должны делать это осознанно: Let МоеНовоеЗначение = "Вася Пупкин" 'кстати, Let можно опускать-оно не обязательно cells(1,1).Value = МоеНовоеЗначение vasiliy74 могу сказать только одно - АФИГЕТЬ... то ли я такой тупой, то ли задача у Вас стоит ОЧЕНЬ не стандартная.... ;-(((((((( Перечитал раза три, пока не вкурил.... Ладно, почитаю ещё пару/другую раз. Пока вопросы - вашем примере что представляет себя второй столбец (ну, который 12 12 16 17 17)? Вы его назвали "столбец сумм" - это что количество * курс ? но это невероятно, т.к. для последних двух строчек для 1 и -11 одна и та же сумма... ;-(((( и ещё, у вас таблица заполняется сверху вниз, т.е сначала вы купили 12 штук, потом продали 2, потом купили 4 и т.д... Так? И что надо в конце концов найти?? я про вашу фразу "цель нашего расчёта найти тот приход из которого мы будем так сказать продавать"?? попытайтесь ещё раз объяснить, теперь ЛОГИКУ вычислений - примерно так - купили x1 по курсу у1 - потом продали x2 по курсу y2 - потом продали x3 по курсу y3 итого, наша реализация составляет RRR новый пример (т.е. всё забыли, с нового года начали заново): - купили x1 по курсу у1 - купили x2 по курсу у2 - купили x3 по курсу у3 - потом продали x4 по курсу y4 - потом продали x5 по курсу y5 итого, наша реализация составляет RRR Похоже у Вас тот случай, когда Вы сами всё прекрасно понимаете, а вот втолковать "невтыкающим" не можете... Обычно в таких случаях проще самому сделать, чем другому объяснить ЧТО же надо делать... [offtop]анекдот в тему. Беседуют два молодых учителя математики. Один другому: - Представляешь, ну и тупой класс мне попался!! Объясняю им доказательство теоремы - не понимают! Ещё раз объясняю - не понимают! Третий раз объясняю, уже сам понимать начал, а они всё равно не понимают!!! Добавлено: vasiliy74 Ещё вопрос/совет. Задача стоит так - напротив ячеек с продажей, (где кол-во <0) необходимо считать реализованную прибыль ? Тогда Вам лучше (эффективнее) сделать функцию на VBA, которая будет вычислять эту прибыль и будем сама заполнять столбец... Чем вставлять туда функцию =Realized(..., протягивать ещё и т.д.... просто каждый раз в каждой ячейке будет запускать один и тот же процесс вычислений... мне кажется, это неэффективно! впрочем, разумеется, об этом можно будет говорить, только после того, как алгоритм заработает! |