Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Пересчет формул при выполнении макроса / 14 сообщений из 14, страница 1 из 1
17.03.2006, 10:12:36
    #33607217
Logayn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пересчет формул при выполнении макроса
Есть пользовательская функция, которая пишет значение в ячейку Excel, есть макрос, который считывает значения из ячеек и пишет их в другую книгу. Такая проблема: при считывании значения ячеек, в которых стоит пользовательская функция значения равны 0, т.е. привыполнении макроса пересчет пользовательской функции отсутствует(Application.Volatile True не помогает, хотя стоит и в функции, и в макросе)??? Плиз объясните неразумному в чем дело???
...
Рейтинг: 0 / 0
17.03.2006, 11:24:32
    #33607468
talgat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пересчет формул при выполнении макроса
LogaynЕсть пользовательская функция, которая пишет значение в ячейку Excel, есть макрос, который считывает значения из ячеек и пишет их в другую книгу. Такая проблема: при считывании значения ячеек, в которых стоит пользовательская функция значения равны 0, т.е. привыполнении макроса пересчет пользовательской функции отсутствует(Application.Volatile True не помогает, хотя стоит и в функции, и в макросе)??? Плиз объясните неразумному в чем дело???
может указать Value ?
...
Рейтинг: 0 / 0
17.03.2006, 11:27:24
    #33607475
talgat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пересчет формул при выполнении макроса
Пользовательская функция написана в VBA ?
...
Рейтинг: 0 / 0
17.03.2006, 11:38:06
    #33607525
Logayn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пересчет формул при выполнении макроса
Да, пользовательская функция в VBA и считываю ее так wb1.cells(yy,xx).value =wb2.cells(y1,x1).value. Дополнение: после выхода из макроса все ячейки, в котрых используются польз. ф-и обнуляются и приходится делать пересчет формул(Ctrl+Shift+F9)
...
Рейтинг: 0 / 0
17.03.2006, 11:49:04
    #33607565
talgat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пересчет формул при выполнении макроса
LogaynДа, пользовательская функция в VBA и считываю ее так wb1.cells(yy,xx).value =wb2.cells(y1,x1).value. Дополнение: после выхода из макроса все ячейки, в котрых используются польз. ф-и обнуляются и приходится делать пересчет формул(Ctrl+Shift+F9)
Я бы пользоват. ф-ию разместил на том же листе где основной код.
Макрос запускается от кнопки или запускается по событию ?
...
Рейтинг: 0 / 0
17.03.2006, 11:52:50
    #33607580
talgat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пересчет формул при выполнении макроса
Если файл EXCEL не большой размести его на форуме.
...
Рейтинг: 0 / 0
17.03.2006, 14:09:28
    #33608114
Logayn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пересчет формул при выполнении макроса
Макрос запускается от кнопки.
Одно уточнение - если в макросе другой лист не активируется, то данные переносятся как надо, но, если активировать - увы:((
Выкладываю свою писанину(м-т что и неправильно, но учусь...)
...
Рейтинг: 0 / 0
17.03.2006, 15:04:21
    #33608333
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пересчет формул при выполнении макроса
твоя проблема в следующем
Код: plaintext
Itog = Itog + Cells(Cell.Row, SumColumn).Value
в данной ситуации к переменной Itog прибавляется значение ячейки активного листа
Код: plaintext
Cells(Cell.Row, SumColumn).Value это тоже самое что и ActiveSheet.Cells(Cell.Row, SumColumn).Value
думаю надо писать так
в начале функции определять имя листа
типа
Код: plaintext
1.
Dim a As String
a = FirstRange.Parent.Name
а потом
Код: plaintext
Sheets(a).Cells(Cell.Row, SumColumn).Value
...
Рейтинг: 0 / 0
17.03.2006, 15:17:46
    #33608388
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пересчет формул при выполнении макроса
А если вычисления будут связаны и с другой книгой, то и имя книги надо определять
Код: plaintext
1.
2.
Dim a As String, b As String
a = FirstRange.Parent.Name
b = FirstRange.Parent.Parent.Name

Код: plaintext
Itog = Itog + Workbooks(b).Sheets(a).Cells(Cell.Row, SumColumn).Value
...
Рейтинг: 0 / 0
17.03.2006, 15:34:46
    #33608444
Logayn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пересчет формул при выполнении макроса
Премного благодарен, только Sheets(a). надо вставлять не только в Itog, но и во все сравнения после And. И я добавил еще и workbooks(aa) (aa=firstrange.parent.parent.name), т.к. переношу в другую рабочую книгу. Огрромное спасибо
...
Рейтинг: 0 / 0
17.03.2006, 15:36:59
    #33608449
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пересчет формул при выполнении макроса
LogaynПремного благодарен, только Sheets(a). надо вставлять не только в Itog, но и во все сравнения после And. И я добавил еще и workbooks(aa) (aa=firstrange.parent.parent.name), т.к. переношу в другую рабочую книгу. Огрромное спасибо
само сабой везде надо вставлять
...
Рейтинг: 0 / 0
17.03.2006, 15:38:43
    #33608453
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пересчет формул при выполнении макроса
лутше воспользоваться конструкцией With
быстрей работать будет
...
Рейтинг: 0 / 0
17.03.2006, 15:51:39
    #33608494
Logayn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пересчет формул при выполнении макроса
vkodorлутше воспользоваться конструкцией With
быстрей работать будет
И за это спасибо:)
...
Рейтинг: 0 / 0
17.03.2006, 15:56:23
    #33608516
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пересчет формул при выполнении макроса
Logayn vkodorлутше воспользоваться конструкцией With
быстрей работать будет
И за это спасибо:)
Пожалуйста
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Пересчет формул при выполнении макроса / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]