Ne peut pas VBA écrire des données dans des cellules dans Excel 2007/2010 au sein d'une fonction

Je tiens à mettre en valeur pour des cellules en VBA. J'ai googlé, et de voir certains de résolution:

Sheets("SheetName").Range("A1").value = someValue
Sheets("SheetName").Cells(1,1).value = someValue

Avec ce genre de code, je peux juste lire les données à partir de la cellule A1, mais je ne peux pas définir une nouvelle valeur pour elle.

Mise à jour

Le code de la cellule A1 de la valeur est mise dans un Function comme ci-dessous.

Function abb()
    Sheets("SheetName").Range("A1").value = 122333
    abb = 'any thing'
End Function

Dans la cellule B2, j'ai mis =abb() et appuyez sur entrée. Je reçois #VALEUR, mais rien ne se passe à A1.

De mettre ce code dans une macro, il fonctionne.

Ma question est, comment faire A1 avoir des valeurs dans une fonction?

  • Vous avez deux choix. Soit l'exécuter comme une sous-Routine, ou de l'utilisation de l'UDF minuterie solution de contournement à partir de stackoverflow.com/q/8520732/641067. Le premier est plus facile.
  • Si vous voulez un retour de la fonction de quelque chose dans A1, puis l'appel de la fonction doit être saisie en A1. C'est la façon dont Excel fonctionne.
  • Pourquoi ne pas vous piéger sat changement de B2 avec une feuille de modifier l'événement puis remplir A1? À partir de votre code, la fonction ne sera pas mise à jour car il n'a pas d'arguments.
InformationsquelleAutor Davuz | 2012-02-28