Maison > développement back-end > C++ > Les UDF Excel peuvent-elles modifier d'autres cellules ?

Les UDF Excel peuvent-elles modifier d'autres cellules ?

DDD
Libérer: 2024-11-20 01:14:03
original
784 Les gens l'ont consulté

Can Excel UDFs Modify Other Cells?

Excel UDF : surmonter les limitations de la sortie de tableau

Les fonctions définies par l'utilisateur (UDF) Excel renvoient généralement une valeur scalaire, mais que se passe-t-il si vous nécessiter un UDF pour modifier d'autres cellules ? C'est un défi car il est expressément interdit aux FDU de modifier les propriétés d'une cellule, d'une feuille de calcul ou d'un classeur.

Est-ce possible ?

Contrairement à la croyance populaire, il est possible de accomplir cette tâche, mais grâce à une solution de contournement complexe. En tirant parti d'une combinaison du minuteur Windows et du minuteur Application.OnTime, nous pouvons contourner ces limitations.

Comprendre la solution de contournement

Le minuteur Windows est lancé à partir de l'UDF. Cependant, sa fonction se limite à planifier une minuterie Application.OnTime. Le minuteur Application.OnTime, approuvé par Excel, s'exécute en toute sécurité uniquement lorsqu'aucune cellule n'est en cours de modification et qu'aucune boîte de dialogue n'est ouverte.

Mise en œuvre

Pour mettre en œuvre cette solution de contournement , placez le code suivant dans un module normal :

[Code Goes Ici]

Explication détaillée

  1. AddTwoNumbers UDF :

    • L'UDF calcule l'UDF somme de deux nombres.
    • Il met également en cache la référence de cellule de l'appelant et démarre une minuterie Windows pour déclencher les tâches suivantes.
  2. AfterUDFRoutine1 :

    • Cette routine de minuterie arrête la minuterie Windows.
    • Il planifie ensuite une minuterie Application.OnTime à l'aide d'un coffre-fort minuterie.
  3. AfterUDFRoutine2 :

    • Cette routine de minuterie est déclenchée par la minuterie Application.OnTime.
    • Il effectue des tâches qui ne sont pas autorisées dans une UDF, comme la modification d'une autre cellule valeurs.

Conclusion

Bien qu'Excel empêche les FDU de modifier directement les cellules, cette solution de contournement fournit une solution. En utilisant une minuterie Windows et une minuterie Application.OnTime en séquence, vous pouvez surmonter ces limitations et permettre à votre UDF d'effectuer des actions qui seraient autrement impossibles.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal