Visual Basic se la cella attiva contiene il testo "A", quindi inserire un 1 nella cella a destra

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

Domanda

L'attività è se la cella attualmente selezionata contiene una "A", quindi inserire un 1 nella cella a destra e (a causa dei dati seguenti) inserire una nuova riga di seguito e riempire la cella sotto la 1 con uno 0.

Quindi, se la cella contiene una "A", allora quando la macro funziona la lascia; a 1 0

Con l'1 che è nella cella a destra di A e 1 in una nuova riga, nella cella direttamente sotto la 1.

Il codice che ho attualmente è;

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

I problemi sono chiari, la selezione di celle non funziona e non riesco a ottenere l'uscita del loop giusto,

È stato utile?

Soluzione

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

Altri suggerimenti

Cosa ti aspetti che faccia quel codice? Per prima cosa assegni 4 valori diversi alla stessa stringa, quindi confronti una cella con una stringa e se sono uguali, si imposta il valore di due celle sui valori di due stringhe che non hai inizializzato.

Penso che intendevi inizializzare text0, text1 e text2 Inoltre, invece di inizializzare text quattro volte.

Non capisco cosa intendi per "Modifica loop". Non c'è ciclo nel tuo codice.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top