Maison >développement back-end >C++ >Comment les FDU qui ne changent pas de tableau peuvent-elles être implémentées dans les compléments Excel ?
Implémentation de UDF ne modifiant pas de tableau dans les compléments Excel
Dans les compléments Excel, les UDF qui modifient les valeurs des cellules sont généralement interdites. Cependant, il est possible de contourner cette restriction en utilisant une combinaison de minuteries Windows et de minuteries Application.OnTime.
Limitation de la minuterie Windows
Les minuteries Windows ne peuvent pas exécuter de code VBA pendant que les cellules sont en cours d'édition ou des boîtes de dialogue sont ouvertes. Cette limitation les empêche de modifier directement les propriétés des cellules dans les UDF.
Solution : Application.OnTime Timer
Pour contourner cette limitation, une minuterie Windows est utilisée dans l'UDF pour planifier une minuterie Application.OnTime. Les minuteries Application.OnTime sont sûres et ne sont déclenchées que lorsqu'une cellule n'est pas en cours de modification et qu'aucune boîte de dialogue n'est ouverte.
Implémentation UDF
Implémentation UDF (AddTwoNumbers) : Dans l'UDF AddTwoNumbers, calculez l'UDF somme comme d'habitude. Après le calcul :
Routine de première minuterie (AfterUDFRoutine1) :
Deuxième routine de minuterie (AfterUDFRoutine2) :
Exemple d'utilisation
Private Sub TestAddTwoNumbers() Dim Cell As Range Set Cell = Range("A1") ' Cache the reference in the UDF Cell.Formula = "=AddTwoNumbers(1, 2)" ' Trigger the timer routine Cell.Calculate End Sub
Lors du calcul, les formules de cellule seront modifiées en refléter la nouvelle valeur, en définissant la cellule à côté de l'appelant sur sa valeur actuelle.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!