Visual Basic Si la cellule active contient du texte «A» puis insérez un 1 dans la cellule vers la droite
-
27-10-2019 - |
Question
La tâche est que si la cellule actuellement sélectionnée contient un "A" puis insérez un 1 dans la cellule vers la droite et (en raison des données ci-dessous) insérez une nouvelle ligne ci-dessous et remplissez la cellule sous le 1 avec un 0.
Donc, si la cellule contient un "A", alors lorsque la macro fonctionne, elle quitte; A 1 0
Le 1 étant dans la cellule à droite de l'A et le 1 étant dans une nouvelle rangée, dans la cellule directement en dessous du 1.
Le code que j'ai actuellement est;
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
Les problèmes sont clairs, la sélection des cellules ne fonctionne pas et je ne peux pas obtenir la sortie de la boucle,
La solution
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
Autres conseils
Que vous attendez-vous à ce que ce code fasse? Vous attribuez d'abord 4 valeurs différentes à la même chaîne, puis comparez une cellule avec une chaîne, et si elles sont les mêmes, vous définissez la valeur de deux cellules sur les valeurs de deux chaînes que vous n'avez pas initialisées.
Je pense que tu voulais initialiser text0
, text1
et text2
De plus, au lieu d'initialiser text
quatre fois.
Je ne comprends pas ce que vous entendez par «édition de boucle». Il n'y a pas de boucle dans votre code.