Actualizar Resultados de la Función VBA de Excel
¿Alguien sabe cómo puedo hacer que una función definida por el usuario se vuelva a evaluar a sí misma (en función de los datos modificados en la hoja de cálculo)? He probado F9 y Cambio+F9, pero los que no funcionan. Lo único que parece funcionar es editar la celda con la llamada a la función y luego presionar Enter. Alguna idea? Me parece recordar haber sido capaz de hacer esto...
8 answers
Debes usar Application.Volatile
en la parte superior de tu función:
Function doubleMe(d)
Application.Volatile
doubleMe = d * 2
End Function
Luego volverá a evaluar cada vez que cambie el libro de trabajo (si su cálculo está configurado en automático).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-28 16:33:28
Más información sobre los atajos de teclado F9 para el cálculo en Excel
- F9 Recalcula todas las hojas de trabajo en todos los libros abiertos
- Mayús+ F9 Recalcula la hoja de trabajo activa
- Ctrl+Alt+ F9 Recalcula todas las hojas de trabajo en todos los libros abiertos (recalculación completa)
- Cambio + Ctrl+Alt+ F9 Reconstruye el árbol de dependencias y hace un nuevo cálculo completo
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-21 17:58:18
Bien, encontré este yo mismo. Usted puede utilizar Ctrl+Alt+F9 para lograr esto.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-21 15:33:04
Si incluye TODAS las referencias a datos de hoja de cálculo en la lista de parámetros UDF, Excel recalculará su función cada vez que cambien los datos referenciados:
Public Function doubleMe(d as variant)
doubleMe=d*2
end Function
También puede utilizar la aplicación.Inestable, pero esto tiene la desventaja de hacer que su UDF siempre recalcule, incluso cuando no es necesario porque los datos referenciados no han cambiado.
Public Function doubleMe()
Application.Volatile
doubleMe=Worksheets("Fred").Range("A1")*2
end Function
Para cambiar a Automático:
Application.Calculation = xlCalculationAutomatic
Para cambiar a Manual:
Application.Calculation = xlCalculationManual
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-03 19:22:59
Funciona bien este para actualizar el cálculo mejor que Range(A:B).Calcular
Public Sub UpdateMyFunctions()
Dim myRange As Range
Dim rng As Range
'Considering The Functions are in Range A1:B10
Set myRange = ActiveSheet.Range("A1:B10")
For Each rng In myRange
rng.Formula = rng.Formula
Next
End Sub
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-10 00:32:07
Public Sub UpdateMyFunctions()
Dim myRange As Range
Dim rng As Range
'Considering The Functions are in Range A1:B10
Set myRange = ActiveSheet.Range("A1:B10")
For Each rng In myRange
rng.Formula = rng.Formula
Next
End Sub
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-22 12:34:53
El Application.Volatile
no funciona para recalcular una fórmula con mi propia función dentro. Utilizo la siguiente función:
Application.CalculateFull
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-21 09:12:20