Excel VBA: parcourir la gamme de paramètres et de modifier les valeurs des cellules

Je crois que ce que je suis en train de faire est assez simple. Je veux effectuer une itération sur une Gamme de paramètres et de modifier la valeur de chaque cellule de cette gamme.

Function test(thisRange As Range)
    For Each c In thisRange.Cells
         c.Value = 1
    Next
End Function

Ci-dessus est un exemple simple de ce que je veux faire, mais ne semble pas fonctionner. Quand je debug, Excel semble être de lancer une erreur quand il frappe c.Value = 1. Pourquoi n'est-ce pas le travail?

  • Il fonctionne pour moi. Comment allez-vous l'appeler? L'espoir de ne pas partir d'une feuille de calcul dans un fichier UDF?
  • Assurez-vous que vous déclarez c comme un Éventail.
  • Est-il nécessaire de cycle de chaque cellule? Pouvez-vous utiliser thisRange.Value = 1
  • Pourquoi est-il un problème pour appeler cette fonction comme une fonction?
  • UDF ne peut modifier l'appel de la cellule
  • Mon objectif est à terme d'attribuer à chaque cellule une valeur dynamique. J'ai simplement utilisé une valeur statique pour simplifier la eaxmple.
  • Yup comme -@ooo dit à juste titre, une fonction ne peut pas changer les autres cellules.
  • Si vous souhaitez modifier plusieurs cellules basé sur une cellule, puis un worksheet_change événement ou worksheet_ calculer événement peut être mieux
  • oh mon dieu, je suis un excel idiot. Merci les gars pour votre aide.

InformationsquelleAutor stevebot | 2012-10-04