Excel VBA Boucler dans les cellules et en remplaçant leurs valeurs
-
30-09-2019 - |
Question
Je suis en train de construire une macro qui cycles à travers une colonne de cellules et remplace un code de pays à deux lettres dans cette cellule avec le nom de ce pays. Cependant, je reçois une erreur d'objet introuvable lorsque je tente d'exécuter la macro.
Sub ChangeCountryText()
'
' ChangeCountryText Macro
' Changes country codes
'
For counter = 2 To 20
Set curCell = ActiveSheet.Cells(counter, 1)
Select Case curCell.Text
Case "JP"
curCell.Text = "Japan"
Case "FR"
curCell.Text = "France"
Case "IT"
curCell.Text = "Italy"
Case "US"
curCell.Text = "United States"
Case "NL"
curCell.Text = "Netherlands"
Case "CH"
curCell.Text = "Switzerland"
Case "CA"
curCell.Text = "Canada"
Case "CN"
curCell.Text = "China"
Case "IN"
curCell.Text = "India"
Case "SG"
curCell.Text = "Singapore"
End Select
Next counter
End Sub
La solution
La propriété Text est en lecture seule - vous ne pouvez pas le définir. Attribuer à la propriété valeur et il devrait fonctionner (par exemple curCell.Value = "Japan"
)
Autres conseils
Je suis sûr que vous avez une bonne raison pour utiliser une macro pour cela, mais vous pouvez regarder dans les fonctions de feuille de calcul ou CHERCHEV comme LOOKUP un moyen de faire quelque chose comme ceci sans écrire une macro.
Vous devriez être en mesure d'entrer dans le débogueur en cliquant à gauche de votre texte macro dans l'éditeur et en plaçant un point rouge sur la ligne
For counter = 2 To 20
Ensuite, vous pouvez parcourir votre macro jusqu'à ce que vous obtenez à l'erreur.
vous pouvez également ajouter la gestion des erreurs à votre macro
On Error Goto Failed
en haut et en avant la sous add fin
Failed:
'handle error here
« objet introuvable » est susceptible de l'appel curCell.Text (curCell est nulle, rien, ou invalide, appelant .Text sur elle échoue) ou les ActiveSheet.Cells appel (pas sûr si cela peut arriver)