Écrit une chaîne de caractères à une cellule dans excel
Je suis en train d'écrire une valeur dans le "A1" de la cellule, mais je reçois l'erreur suivante:
Définie par l'Application ou par l'objet défini erreur '1004'
J'ai essayé de nombreuses solutions sur le net, mais aucun travail. Je suis à l'aide d'excel 2007 et le fichier extensiton est .xlsm.
Mon code est comme suit:
Sub varchanger()
On Error GoTo Whoa
Dim TxtRng As Range
Worksheets("Game").Activate
ActiveSheet.Unprotect
Set TxtRng = ActiveWorkbook.Sheets("Game").Cells(1, 1)
TxtRng.Value = "SubTotal"
'Worksheets("Game").Range("A1") = "Asdf"
LetsContinue:
Exit Sub
Whoa:
MsgBox Err.number
Resume LetsContinue
End Sub
Edit: Après je reçois l'erreur si je clique sur l'icône d'avertissement, puis sélectionnez afficher les étapes de calcul de son travail correctement
Si je n'étais pas sorti de voix, je dirais +1 pour
Je vous remercie. Cette erreur est vraiment freaking me out
J'en doute. J'ai fait une recherche pour votre message d'erreur sur Bing, et toutes sortes d'erreurs, qui ont été sur la syntaxe. Avez-vous essayé de marcher à travers votre code via la touche F8 pour trouver la ligne où l'erreur se produit? Parfois, en regardant les extra les informations de débogage dans le fichier Excel débogueur quand il envoyait le message d'erreur peut aider à cerner les choses un peu.
Essayez de déclarer TxtRng
Combien de fichiers avez-vous ouvert? Juste une? Essayez de qualification de l'ensemble de votre feuille de calcul des références avec un classeur: eg.
On Error Goto Whoa
Je vous remercie. Cette erreur est vraiment freaking me out
J'en doute. J'ai fait une recherche pour votre message d'erreur sur Bing, et toutes sortes d'erreurs, qui ont été sur la syntaxe. Avez-vous essayé de marcher à travers votre code via la touche F8 pour trouver la ligne où l'erreur se produit? Parfois, en regardant les extra les informations de débogage dans le fichier Excel débogueur quand il envoyait le message d'erreur peut aider à cerner les choses un peu.
Essayez de déclarer TxtRng
As Excel.Range
au lieu de simplement Range
. Si cela ne fonctionne pas, essayez Worksheets("Game").Select
au lieu de Activate
. Si cela ne fonctionne pas, ôter la protection du classeur/feuille d'abord manuellement.Combien de fichiers avez-vous ouvert? Juste une? Essayez de qualification de l'ensemble de votre feuille de calcul des références avec un classeur: eg.
Worksheets("Game")
devrait être ThisWorkbook.Worksheets("Game")
. Puis commentez les gestionnaires d'erreur et l'exécuter à voir ce que la ligne est la question.
OriginalL'auteur knightrider | 2012-07-19
Vous devez vous connecter pour publier un commentaire.
Je pense que vous pouvez être en train de trébucher sur la protection de la feuille. J'ai simplifié votre code un peu et je suis en précisant les références du classeur et de la feuille de calcul des objets. Dans votre exemple, vous explicitement référence au classeur et de la feuille lors de la configuration de la TxtRng objet, mais pas quand vous ôter la protection de la feuille.
Essayez ceci:
Si je lance le sous-marin avec
ws.Unprotect
commenté, j'obtiens une erreur d'exécution 1004. (En supposant que j'ai protégé la feuille et la portée verrouillé.) Décommentant la ligne permet l'exécution de code amende.NOTES:
Cells(1, 1)
notation peut causer une énorme quantité de chagrin. Veillez à l'utiliser.Range("A1")
est beaucoup plus facile pour les humains pour analyser et tend à empêcher le front-gifles erreurs.Quelle a été la description de l'erreur? (le message d'erreur complet, pas juste 1004)
Définie par l'Application ou par l'objet défini
OriginalL'auteur Jon Crowell
J'ai eu un peu de canneberge-vodka ce soir si j'ai peut-être raté quelque chose...Est le réglage de la portée nécessaire? Pourquoi ne pas utiliser:
Est-ce à échouer?
Ressemble-vous essayé quelque chose de similaire:
Cependant, les Feuilles de calcul est une collection, de sorte que vous ne pouvez pas faire référence "Jeu". Je pense que vous avez besoin d'utiliser les Feuilles de l'objet à la place.
OriginalL'auteur UberNubIsTrue
remplacer
Range("A1") = "Asdf"
avec
Range("A1").value = "Asdf"
OriginalL'auteur T. I. Troll
essayez plutôt ceci
Set TxtRng = ActiveWorkbook.Sheets("Game").Range("A1")
PLUS
Peut-être que le fichier est corrompu - ce qui m'est arrivé à plusieurs reprises avant et la seule solution est de tout copier dans un nouveau fichier.
S'il vous plaît pouvez-vous essayer ce qui suit:
Fait cette course?
classic - s'il vous plaît tourner Excel et encore une fois, peut-être même re-démarrage de votre machine.
La désactivation de excel n'a pas aidé. Je vais essayer de redémarrer
Le redémarrage est aussi de ne pas aider les
OriginalL'auteur whytheq