Excel VBA -Schleifen durch Zellen und ersetzt ihre Werte
-
30-09-2019 - |
Frage
Ich versuche, ein Makro zu bauen, das durch eine Zellsäule radelt und einen Ländercode von zwei Buchstaben in dieser Zelle durch den Namen dieses Landes ersetzt. Ich erhalte jedoch einen Fehler, der keinen Fehler gefunden habe, wenn ich versuche, das Makro auszuführen.
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
Lösung
Die Texteigenschaft ist schreibgeschützt - Sie können sie nicht einstellen. Der Werteigenschaft zuweisen und es sollte funktionieren (z. B. z. B. curCell.Value = "Japan"
)
Andere Tipps
Ich bin sicher, Sie haben einen guten Grund für die Verwendung eines Makros dafür, aber Sie möchten sich jedoch mit den Arbeitsblatt -Funktionen für die Suche oder Vlookup befassen, um so etwas zu tun, ohne ein Makro zu schreiben.
Sie sollten in der Lage sein, den Debugger einzugeben, indem Sie im Editor nach links von Ihrem Makrotext klicken und einen roten Punkt in die Zeile platzieren
For counter = 2 To 20
Dann können Sie Ihr Makro durchlaufen, bis Sie den Fehler erhalten.
Alternativ können Sie Ihrem Makro Fehlerbehandlung hinzufügen
On Error Goto Failed
Oben und vor dem Ende sub hinzufügen
Failed:
'handle error here
"Objekt nicht gefunden" ist wahrscheinlich aus dem Curcell.text -Aufruf (Curcell ist null, nichts oder ungültig. Daher fehlschlägt die .Text. Der Text ist fehlgeschlagen) oder der Activesheet.Cells -Anruf (nicht sicher, ob dies passieren kann)