Pregunta

Estoy tratando de construir una macro que gira a través de una columna de celdas en lugar de Á código de dos letras del país en esa celda con el nombre de ese país. Sin embargo, me sale un error objeto no encontrado cuando trato de ejecutar 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
¿Fue útil?

Solución

La propiedad de texto es de sólo lectura - no se puede establecer. Asignar a la propiedad Value y debería funcionar (por ejemplo curCell.Value = "Japan")

Otros consejos

Estoy seguro de que tiene una gran razón para usar una macro para esto, pero es posible que desee ver en las funciones de hoja de LOOKUP o BUSCARV como una manera de hacer algo como esto sin tener que escribir una macro.

debe ser capaz de entrar en el depurador, haga clic a la izquierda de su texto en el editor de macros y la colocación de un punto rojo en la línea

For counter = 2 To 20

A continuación, puede pasar a través de la macro hasta llegar al error.

Como alternativa se puede añadir el control de errores a la macro

On Error Goto Failed

en la parte superior y antes de la sub extremo add

Failed: 
'handle error here

"Objeto no encontrado" es probablemente de la llamada curCell.Text (curcell es nulo, nada, o no es válida, así que llamar .Texto en él está fallando) o los ActiveSheet.Cells llamar (no sé si esto puede suceder)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top