Forced Ranking Makro Excel VBA
ich das Setup wie oben in der Abbildung dargestellt.
Logik des Makros ist, wenn ich eine Nummer 1
in Zelle B5
oder in leere Zelle in Range("B2:B26")
geben Sie dann die Ausgabe in diesem Format sein würde:
B2 3
B3 4
B4 2
B5 1
Jetzt gibt es mir, dass die Ausgabe aber sicher sind, Nachteile z
Wenn ich die Eingabe 8
der gleichen Zelle zur Verfügung stelle, dann erhöht es immer noch die Ränge. Ich habe eine Übereinstimmungsprüfung durchgeführt, um zu sehen, ob dieser Wert vorhanden ist oder nicht, aber es scheint nicht zu funktionieren. Jede Hilfe wäre willkommen.
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Application.EnableEvents = False
Dim KeyCells As Range
Dim i As Long, Cel As Range, sht1 As Worksheet, j As Long, found As Boolean
Set sht1 = Sheet1
Set KeyCells = sht1.Range("B2:C26")
If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
If Target.Column = 2 Then
For i = 2 To 26
If sht1.Range("B" & i) <> Empty And sht1.Range("B" & i).Value >= Target.Value And i <> Target.Row Then
sht1.Range("B" & i).Value = sht1.Range("B" & i).Value + 1
Else: End If
Next i
Else: End If
If Target.Column = 3 Then
For i = 2 To 26
If sht1.Range("C" & i) <> Empty And sht1.Range("C" & i).Value >= Target.Value And i <> Target.Row Then
sht1.Range("C" & i).Value = sht1.Range("C" & i).Value + 1
Else: End If
Next i
Else: End If
Else: End If
Call CreateDataLabels
Target.Select
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Ich bin irgendwie verwirrt. Wenn Sie '1' in' B5' eingeben, was soll dann passieren? Wie hast du '4' in' B3' bekommen? –
@SiddharthRout Wenn Sie diesen Teil entfernen 'gefunden = Falsch Für i = 2 bis 26 Wenn sht1.Range (" B "& i) <> Leer und sht1.Range (" B "& i) .Wert = Ziel .Value And i <> Target.Row Dann gefunden = True Sonst: Ende Wenn Als nächstes werde ich es bekommen. – newguy
Können Sie den Code vergessen und die Logik erklären? :) –