Ich habe eine Tabelle, die Hauptbuchinformationen für bestimmte Konten enthält, die als so strukturiert ist:VBA .FindNext() - Überspringen der nächste Wert
ich ein einfaches Makro entwerfen wollte, die finden Zelle, die "Total" enthält und entfernen Sie es, dann in die rechte Spalte und "Total:" in die Zelle (Spalte b).
Das Problem, auf das ich mit meinem Makro stoße, ist, wenn ich es auf .FindNext() setze, nimmt es die Zelle "Total:" auf, die gerade als nächster Fund aufgefüllt wurde. Ich weiß, dass ich das wahrscheinlich mit einer if-Funktion handhaben könnte, aber ich wollte wissen, ob es eine Methode gibt, mit der .FindNext() das nächste Ergebnis überspringen und entsprechend weitergehen kann.
Hier ist das Makro in seiner aktuellen Form. Hinweis: Dies ist mein erster Versuch, ein eigenes VBA-Makro zu erstellen.
Sub Macro2()
With Worksheets("Sheet3").Cells
Set c1 = .Find("TOTAL", After:=.Range("A1"), LookIn:=xlValues)
If Not c1 Is Nothing Then
firstOne = c1.Address
Do
c1.Select
ActiveCell.ClearContents
c1.Offset(0, 1).Value = "Totals:"
Set c1 = .FindNext(c1)
Loop While Not c1 Is Nothing And c1.Address <> firstOne And c1.Value <> "Grand Total"
End If
End With
End Sub
Wenn jemand mit mir helfen konnte, entweder bekommt es den nächsten Wert oder richtig es Verrechnung zu überspringen, so dass es in dem gewünschten Effekt ergibt würde ich mich sehr dankbar. Ich habe auch versucht, andere Beiträge zu diesem Thema zu finden, aber keine mit speziell diesem Thema gefunden, ich schätze Ihre Hilfe!
Die 'If' Aussage ist wahrscheinlich die beste Wahl. Sie könnten jedoch versuchen, den Anfang Ihrer nächsten Suche mit 'set c1 = .FindNext (c1.offset (0,1) .Range)' zu vergleichen, um zu sehen, wie das funktioniert. Ich bin unsicher, wenn der 'Find'-Algorithmus von links nach rechts, von oben nach unten oder in einer anderen Richtung arbeitet. – PeterT