![]() |
Модераторы: mihanik |
![]() ![]() ![]() |
|
Pogreb |
|
|||
Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 69 Регистрация: 17.10.2005 Репутация: нет Всего: нет |
Доброго времени суток =)
У меня такая проблема, написана пользовательская функция (UDF), ее надо запускать периодически, чтобы она пересчитывала значения в ячейках таблицы. На форуме нашел ссылки только на автоматический запуск или по расписаню макросов, но это не совсем макрос. Как быть и что делать? Спасибо. Вот код функции:
|
|||
|
||||
ИгнатьевАлексей |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 369 Регистрация: 18.11.2005 Репутация: 2 Всего: 3 |
Pogreb, функция отличается тем, что возвращает какое то значение. То есть подразумевается, что это значение используется также в программе.
Если я правильно понял, тебе надо периодически получать значение из нета при помощи этой функции и загонять полученное значение в ячейку(и)? Тогда пишешь маленький макросик, который вызывает эту функцию и полученное значение пишет в нужную ячейку. А запускать макросы периодически ты умеешь. ![]() -------------------- Vingrad - FOREVER !!! "Как вы яхту назовете - так она и поплывет!" Капитан Врунгель |
|||
|
||||
Pogreb |
|
|||
Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 69 Регистрация: 17.10.2005 Репутация: нет Всего: нет |
Ну это можно конечно, только мне интересно было, можно ли написать таким образом, чтобы можно было "растянуть на колонку", а с макросом наверное так не получится. Просто я не шарю в программухе сильно, если не сложно, помогите ))
|
|||
|
||||
ИгнатьевАлексей |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 369 Регистрация: 18.11.2005 Репутация: 2 Всего: 3 |
Pogreb, помогу с удовольствием, а писать за тебя нет время
![]() 1. Функция работает? Ты получаешь с помощью нее то, что надо? 2. Ты хочешь, чтобы макрос запускался периодически сам и помещал в ячейку полученную инфу? 3. Каким образом тебе надо заносить полученную инфу? Что такое - "Растянуть на колонку"? Русский язык велик и могучь ![]() -------------------- Vingrad - FOREVER !!! "Как вы яхту назовете - так она и поплывет!" Капитан Врунгель |
|||
|
||||
Pogreb |
|
|||
Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 69 Регистрация: 17.10.2005 Репутация: нет Всего: нет |
1)Да функция работает и возвращает верные значения.
2)Да я хочу чтобы макрос запускался периодически, запускал функцию, функция обновляла значения в клетке. Растянуть на колонку, я имел ввиду когда у меня в ячейке введена функция к примеру =getquote(A3). в ячейке А3 содержится параметр функции, чтобы можно было растянуть, взять эту ячейку с формулой и растянуть на колонку и чтобы она выдала мне результаты в соответствии с А колонкой параметров. А что значит, каким образом заносить информацию? Мне надо, чтобы в той ячейке, где у меня написана функция, просто возращалось значение этой функции и периодически обновлялось. Конечно можно написать макрос, чтобы он запускал функцию, но его придется каждый раз переписывать, если добавить или удалить ячейку. А тем более если распложить ее в другой колонке или строке. Я надеюсь я все понятно написал ![]() |
|||
|
||||
Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 7 Всего: 49 |
Функцию оставьте в покое.
А периодически инициируйте пересчет листа. Для этого существует метод CALCULATE. -------------------- Я желаю всем Счастья! |
|||
|
||||
Pogreb |
|
|||
Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 69 Регистрация: 17.10.2005 Репутация: нет Всего: нет |
Может подскажете куда надо всунуть этот метод.
В эту же функцию? или надо создать другую? |
|||
|
||||
ИгнатьевАлексей |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 369 Регистрация: 18.11.2005 Репутация: 2 Всего: 3 |
Pogreb, теперь понятнее
Растянуть на колонку - все должно так и происходить, как ты ждешь, если перед номером столбца или строки не стоит значек $ . $ - закрепляет номер столбца или строки при копировании протяжкой. Дальше делай то, что Naghual тебе подсказывает. Пишешь простейший макросик, который активирует метод Calculate своего листа, или его части. Макросик запускаешь на выполнение с нужной периодичностью - это обсуждали Вот - из хелпов: Calculate Method See AlsoApplies ToExampleSpecificsCalculates all open workbooks, a specific worksheet in a workbook, or a specified range of cells on a worksheet, as shown in the following table. To calculate Follow this example All open workbooks Application.Calculate (or just Calculate) A specific worksheet Worksheets(1).Calculate A specified range Worksheets(1).Rows(2).Calculate expression.Calculate expression Optional for Application, required for Worksheet and Range. An expression that returns an object in the Applies To list. Example This example calculates the formulas in columns A, B, and C in the used range on Sheet1. Worksheets("Sheet1").UsedRange.Columns("A:C").Calculate Удачи -------------------- Vingrad - FOREVER !!! "Как вы яхту назовете - так она и поплывет!" Капитан Врунгель |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Программирование, связанное с MS Office" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |