Detectar Referencia Circular
Introducción
Los libros pueden tener referencias circulares y a veces es necesario detectar si las referencias circulares existen o no.
Concepto detrás de la detección de la referencia circular
Las referencias circulares solo se pueden detectar cuando se calcula la fórmula porque las referencias de una fórmula comúnmente dependen del resultado calculado de otras partes u otras fórmulas. Por lo tanto, proporcionamos nuevas API para este requisito (para recopilar celdas con referencias circulares) en el proceso de cálculo de fórmulas:
CalculationCell: Representa el cálculo de datos relevantes sobre una celda que se está calculando
AbstractCalculationMonitor.OnCircular(IEnumerator circularCellsData): será invocado por el motor de cálculo de fórmulas cuando se encuentren referencias circulares, el elemento en el enumerador es objetos CalculationCell que representan todas las celdas en un círculo. El valor devuelto denota si el motor de fórmulas necesita calcular esas celdas de forma circular después de esta llamada.
El usuario puede recopilar esas referencias circulares en la implementación del método AbstractCalculationMonitor.OnCircular().
El archivo de muestra fuente se puede descargar desde el siguiente enlace:
Definición de la clase CircularMonitor que se deriva de la clase AbstractCalculationMonitor es la siguiente: