мобильное приложение мелбет

Кто в Ехеле понимает, может знаете

Форумы Главный Флейм Кто в Ехеле понимает, может знаете

  • В этой теме 7 ответов, 5 участников, последнее обновление 06.03.2006 в 09:19 сделано DragonFly.
Просмотр 8 сообщений - с 1 по 8 (из 8 всего)
  • Автор

    Сообщения

  • #46008

    DragonFly

        • Всего сообщений: 12234

      почему это мерзкая тварь не обновляет пользовательскую функцию при изменении ее аргументов? В простейшем случае пишу код ВБА эф(ячейка) = «значение функции». Все считает. Потом меняю значение в ячейке, например, обнуляю ее. Значение ячейки, куда вбита эф(ячейка-аргумент) — не меняется!

      Разумеется, в параметрах автоматическое вычисление, но даже явное F9 или Шит(«название листа»).Калкулейт — не спасает. Зараза не считает нужным пересчитывать пользовательскую функцию. Как-то я раньше умел с этой бедой бороться, а щаз уже спать хочу, не могу больше! 😈

      hare mamburu

      #124261

      Bombik

          • Всего сообщений: 67

        Макрос ошибку выдаёт? Или просто не изменяет значение ячейки?
        Возможно макрос надо ещё раз запустить.

        NULL

        #124262

        Аноним

            • Всего сообщений: 15414

          Слушай, а формат ячейки, где аргумент живет, случайно не «текстовый»?
          Я подзабыл, «пользовательская функция» — имеется в виду
          некая последовательность действий, зашитых в формуле, которую ты создал САМ, так?, Или наоброт строго те три сотни что готовые, первоначальные, вызываемые мастером функций кнопой fx
          Может формула настоко сложна, (с какими нить ВПРами, «еслями», «смещ»ами, что при некоторых вариантах значений аргументов возникает «экстремальные» ситуации: деление на ноль, или квадратный корень из отрицательного числа, и т.п. и Ёксель не обновляет… хотя должен писать соответствующее сообщение.
          А вообще, была у меня такая беда, я заново переписал формулу -все прошло.
          просто глюки Ёкселя.

          #124263

          A.S.

              • Всего сообщений: 149

            Private Sub Worksheet_Change(ByVal Target As Range)
            Dim T1 As Double

            ‘ E3 — входная ячейка
            ‘ E7 — выход
            ‘ MyFunc() — функция пользователя

            T1 = Range(«E3»).Value
            Range(«E7»).Value = MyFunc(T1)
            End Sub

            Проверил — все работает

            #124264

            Morfey

                • Всего сообщений: 2001

              То AS — про это же написали — на VBA все работает…)
              То DF — Какой экс. вообще 8 или 9(2003)..А скоро 10 будет ) Воот там говорят ..все и будет …)

              #124265

              Morfey

                  • Всего сообщений: 2001

                To Andrey — Точна у экса столько глюков — что проще обходить их — чем бороться … Я даже в росс.Микрософт..звонил — по тому что накопал — обещали исправить.. Пока ждем ))

                #124266

                DragonFly

                    • Всего сообщений: 12234

                  @A.S. wrote:

                  Private Sub Worksheet_Change(ByVal Target As Range)
                  Dim T1 As Double

                  ‘ E3 — входная ячейка
                  ‘ E7 — выход
                  ‘ MyFunc() — функция пользователя

                  T1 = Range(«E3»).Value
                  Range(«E7»).Value = MyFunc(T1)
                  End Sub

                  Проверил — все работает

                  Как это использовать?

                  Пока борюсь следующим образом: на листе, где изменяются аргументы (что почему-то не приводит к изменению значений) делаю

                  Cells.Select
                  Selection.Copy
                  ActiveSheet.Paste

                  Т.е. тупо копирую на себя весь лист с аргументами. При этом что-то в Ехеле «щелкает» и он пересчитывает все формулы. Но это «криво», не люблю кривые фокусы в программировании. Должно быть какое-то принудительное обновление каких-нибудь кэшей или еще чего-то…

                  К сожалению, пока не понимаю, как можно использовать вышеуказанную процедуру. Не переписывать же для каждой ячейки с функцией такой код?

                  hare mamburu

                  #124267

                  DragonFly

                      • Всего сообщений: 12234

                    @Morfey wrote:

                    То AS — про это же написали — на VBA все работает…)
                    То DF — Какой экс. вообще 8 или 9(2003)..А скоро 10 будет ) Воот там говорят ..все и будет …)

                    Писал програмульку дома, там старая еще Вынь 98 и старый же Ехель. Сейчас пришел на работу, тут поновее — поглядим. Вроде как нашел метод — при каждом обращении к листу она делает рефреш вышеуказанным способом (с отклучением ScreenUpdating), а чтобы изменить аргументы — надо перейти в другой лист. Изменили, вернулись вотчет — все обновилось. Но все равно дурость какая-то.

                    hare mamburu

                  Просмотр 8 сообщений - с 1 по 8 (из 8 всего)
                  • Для ответа в этой теме необходимо авторизоваться.
                  Просмотров: 64