Visual Basic Wenn die aktive Zelle Text „A“ enthält und eine 1 nach rechts in die Zelle einfügt
-
27-10-2019 - |
Frage
Die Aufgabe ist, ob die aktuell ausgewählte Zelle ein "a" enthält, dann ein 1 in die Zelle nach rechts einfügen und (wegen Daten unten) eine neue Zeile unten einfügen und die Zelle unter der 1 mit einem 0 füllen.
Also, wenn die Zelle ein "A" enthält, wenn das Makro ausführt, verlässt sie; a 1 0
Wobei die 1 in der Zelle rechts von A und 1 in einer neuen Reihe in der Zelle direkt unter dem 1 befindet.
Der Code, den ich derzeit habe, ist;
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
Die Probleme sind klar, die Auswahl der Zellen funktioniert nicht und ich kann den Schleifenausgang nicht richtig machen.
Lösung
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
Andere Tipps
Was erwarten Sie diesen Code? Sie weisen zunächst 4 verschiedene Werte derselben Zeichenfolge zu, vergleichen dann eine Zelle mit einer Zeichenfolge. Wenn sie gleich sind, setzen Sie den Wert von zwei Zellen auf die Werte von zwei Zeichenfolgen, die Sie nicht initialisiert haben.
Ich denke, Sie wollten initialisieren text0
, text1
und text2
auch statt initialisieren text
vier Mal.
Ich verstehe nicht, was Sie unter "Schleifen bearbeiten" meinen. In Ihrem Code enthält keine Schleife.