Страницы: 1
RSS
Возможно ли сделать пользовательскую функцию
 
так чтобы она не возварщала значение а изменяла саму себя?  
 
те набираю =Function(A1) жму энтер  
 
и в ячейве появляется =A1
 
зачем ??
Редко но метко ...
 
если правильно понял, то вы о циклической ссылке. так?
 
{quote}{login=GIG_ant}{date=16.11.2011 04:25}{thema=}{post}зачем ??{/post}{/quote}  
 
например, если расчет формулы требует много ресурсов и мне нет нужды в повторонм расчете значения. конечно, можно воспользоваться копи-паст значение но хотелсь чтобы это делала сама формула, один раз просчиталась и оставила вместо себя свое значение.
 
Можно написать процедуру, которая заменяет формулы на значения в выделенных ячейках на листе, например. Но после ее работы там будут именно значения. А если все-таки надо будет пересчитывать? По-новой формулы будете рисовать?  
Может, проще отключать автопересчет и запускать пересчет таблицы при необходимости по F9?
 
ради интереса:  
наберите в любой ячейке листа =Function(A1)
Редко но метко ...
 
{quote}{login=GIG_ant}{date=16.11.2011 04:40}{thema=}{post}ради интереса:  
наберите в любой ячейке листа =Function(A1){/post}{/quote}  
 
не совсем то, так как вы меняете текст в выбранной ячейки не в результате действия самой Function а в результате попытки вписать в ячейку текст =Function(A1)
 
Я вам показал как при вводе в ячейку определенного текста или формулы, можно запустить макрос и вставить в эту ячейку все что угодно, в том числе и рассчитанное по вашим формулам значение.  
То есть как вы и хотели, будет пересчитываться только один раз после ввода.
Редко но метко ...
 
С одного сайта:  
 
Before we look at UDF's in detail I should point out that UDF's do not have the same flexibility as a standard Procedure. a UDF cannot alter the structure of a Worksheet, such as change the Worksheet name, turn off gridlines, protect the Worksheet etc. They cannot change a physical characteristic of a cell, including the one that houses the UDF. So we cannot use a UDF to change the font colour, background colour etc of any cell. They cannot be used to try and change any part of another cell in any way at all. This means a UDF cannot place a value into any other cell except the cell housing the UDF. A UDF cannot use many of Excels built in features such as AutoFilters, AdvancedFilters, Find, Replace to name but a few!  
 
 
Для примера попробуйте выполнить пару макросов.  
 
Function UDF(rng As Range)              
   Call ttt  
   UDF = 5  
End Function  
 
Sub ttt()  
   Cells(1, 1) = 3  
End Sub
Страницы: 1
Наверх