Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2015, 20:04   #1
Demetros
Форумчанин
 
Регистрация: 28.01.2014
Сообщений: 126
По умолчанию Замена результата вычисления пользовательской функции на значение

Народ, доброе время суток. Есть большая таблица с кучей пользовательских формул, которые пересчитываются очень долго (извлечение даты из текста в ячейке). Подскажите как макросом на активном листе заменить все результаты вычислений пользовательских функций на обычные значения?
Demetros вне форума Ответить с цитированием
Старый 10.11.2015, 20:25   #2
Watcher_1
Форумчанин
 
Аватар для Watcher_1
 
Регистрация: 22.06.2011
Сообщений: 325
По умолчанию

Код:
activesheet.usedrange.cells.value=activesheet.usedrange.cells.value
Заказать макрос можно на сайте http://excel4you.ru/
Watcher_1 вне форума Ответить с цитированием
Старый 13.11.2015, 12:04   #3
Demetros
Форумчанин
 
Регистрация: 28.01.2014
Сообщений: 126
По умолчанию

Цитата:
Сообщение от Watcher_1 Посмотреть сообщение
Код:
activesheet.usedrange.cells.value=activesheet.usedrange.cells.value
Этот код удаляет все формулы с листа. А мне необходимо удалить только те которые определены пользователем.
Demetros вне форума Ответить с цитированием
Старый 13.11.2015, 12:08   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

а Вы ЧТО ПРОСИЛИ???????????????????????????? ??????????
Цитата:
заменить все результаты вычислений пользовательских функций на обычные значения
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 13.11.2015, 12:08   #5
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Выделить неразрывный диапазон со своими формулами, выполнить
Код:
selection.value=selection.value
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 13.11.2015, 13:08   #6
Demetros
Форумчанин
 
Регистрация: 28.01.2014
Сообщений: 126
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Выделить неразрывный диапазон со своими формулами, выполнить
Код:
selection.value=selection.value
Я просил макрос замены формул ОПРЕДЕЛЕННЫХ ПОЛЬЗОВАТЕЛЕМ!!!!!!!! (собственного приготовления, так сказать), а не встроенных в эксель, и не с выделением, а сразу со всего листа.

Последний раз редактировалось Demetros; 13.11.2015 в 13:12.
Demetros вне форума Ответить с цитированием
Старый 13.11.2015, 13:18   #7
Demetros
Форумчанин
 
Регистрация: 28.01.2014
Сообщений: 126
По умолчанию

IgorGO, я очень ценю Вашу неоднократную помощь мне и всем нуждающимся в ней на этой ветке форума. Учитывая Вашу активность здесь и Ваши пристрастные вопросы, я в своих просьбах о помощи стараюсь быть максимально краток и точен. Но если уж у меня не совсем получилось, прошу прощения.
Demetros вне форума Ответить с цитированием
Старый 13.11.2015, 13:22   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Demetros Посмотреть сообщение
Я просил макрос замены формул ОПРЕДЕЛЕННЫХ ПОЛЬЗОВАТЕЛЕМ!!!!!!!! (собственного приготовления, так сказать), а не встроенных в эксель, и не с выделением, а сразу со всего листа.
Так Вам и дали код, который заменяет все формулы на листе.
Они там все внесены пользователями. Ни одной сам Excel Вам на лист не добавляет. Только пользователь вставляет формулы.

Вы что-то хотите, а что - выразить не можете, да?
Попробуйте привести пример, где на листе одна формула "ОПРЕДЕЛЁННАЯ ПОЛЬЗОВАТЕЛЕМ" (и должна быть заменена), а вторая ФОРМУЛА - не такая и не дожна быть замена.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.11.2015, 13:31   #9
AleksandrH
Форумчанин
 
Аватар для AleksandrH
 
Регистрация: 15.02.2010
Сообщений: 148
По умолчанию

ТС хочет написать на VBA
Код:
Function СуммаДеметрос(диапазон)
на листе в А1 вписать "=СУММ(Диапазон)"
в А2 вписать "=СуммаДеметрос(Диапазон)"
запустить макрос и в результате получить в А1 "= сумм(ДИапазон)" а в А2 - результат. число кот возвратит СуммаДеметрос
WIX-FILTERS. A Filter for every application.
AleksandrH вне форума Ответить с цитированием
Старый 13.11.2015, 14:02   #10
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

думаю я понял что хочет ТС - заменить все свои UDF на значения.
Можно пройтись циклом по всем ячейкам с формулами в usedrange, проанализировать если там нужная формула - то и заменить.
Перед началом процесса отключить пересчёт.

Что-то вроде
Код:
Dim c As Range
For Each c In ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas)
If Left(c.Formula, 4) = "=Num" Then c.Value = c.Value
Next
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 13.11.2015 в 14:13.
Hugo121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание пользовательской функции в Excel Аcmrf Microsoft Office Excel 5 29.04.2014 16:09
создание пользовательской функции Devil669 Microsoft Office Excel 1 10.12.2012 23:47
написание пользовательской функции drNabla Microsoft Office Excel 15 05.11.2010 09:08
Составить программу вычисления выражения и выведения полученного результата на экран.тема ФУНКЦИИ. coolbaba Общие вопросы Delphi 1 03.06.2010 03:31
Написание пользовательской функции. GoreProgrammist Microsoft Office Excel 9 15.07.2009 15:28