Visual Basic si la celda activa contiene texto "A" y luego inserte un 1 en la celda a la derecha

StackOverflow https://stackoverflow.com/questions/4856617

Pregunta

La tarea es si la celda seleccionada actualmente contiene una "A", inserte un 1 en la celda a la derecha y (debido a los datos a continuación) inserte una nueva fila a continuación y llene la celda debajo del 1 con un 0.

Entonces, si la celda contiene un "A", entonces cuando la macro se ejecuta, sale; A 1 0

Con el 1 en la celda a la derecha de la A y el 1 en una nueva fila, en la celda directamente debajo del 1.

El código que tengo actualmente es;

Sub ChangeAToCells()
Dim text As String
text = "a"
Dim text0 As String
text = "b"
Dim text1 As String
text = "0"
Dim text2 As String
text = "1"


If ActiveCell = text Then
ActiveCell.Formula = text1
ActiveCell.Offset(1).EntireRow.Insert
ActiveCell.Offset(1, 0).Select
ActiveCell.Formula = text2
End If



End Sub

Los problemas son claros, la selección de células no funciona y no puedo obtener la salida del bucle correctamente,

¿Fue útil?

Solución

Sub ChangeAToCells()
If ActiveCell = "a" Then
   ActiveCell.Offset(0, 1) = 1
   ActiveCell.Offset(1).EntireRow.Insert
   ActiveCell.Offset(1, 1) = 0
End If
End Sub

Otros consejos

¿Qué esperas que haga ese código? Primero asigna 4 valores diferentes a la misma cadena, luego compare una celda con una cadena, y si son los mismos, establece el valor de dos celdas en los valores de dos cadenas que no ha inicializado.

Creo que quisiste inicializar text0, text1 y text2 Además, en lugar de inicializar text cuatro veces.

No entiendo a qué te refieres con 'editar bucle'. No hay bucle en su código.

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