Excel - Makro-Highlight bei Unterschied> oder <2

  • Problem
  • Lösung
  • Hinweis

Problem

Ich brauche Hilfe beim Schreiben eines Excel-Makros für das Rechnungswesen, an dem ich arbeite. Es scheint, dass alles gut funktioniert, bis auf einen Teil, bei dem ich Hilfe brauche.

Ich habe 2 Arbeitsblätter, die identisch formatiert sind. Einige Informationen ändern sich jedoch von Arbeitsblatt 1 zu Arbeitsblatt 2. Ich möchte ein Makro einrichten, um die Spalten "J", "M", "P", "S", "V" und "Y" für jede Zelle. Hier ist ein Beispiel, was ich brauchen würde:

-Wenn (Arbeitsblatt1! M24-Arbeitsblatt2! M24) größer als 20 oder kleiner als -20 ist, ändern Sie den Zellenhintergrund Arbeitsblatt1! M24 Lavendel

-Ich brauche die Formel, um zu überprüfen, und nicht die Daten in beiden Arbeitsblättern zu überschreiben

Dies bedeutet, dass wenn M24 in Arbeitsblatt 1 200, 00 und M24 in Arbeitsblatt 2 275, 00 ist, M24 in Arbeitsblatt 1 weiterhin als 200, 00 angezeigt wird, es jetzt jedoch als Lavendel hervorgehoben wird.

Irgendwelche Ideen, wie ich das machen kann ?? Ich baue die Makros in VBA, mit denen ich sehr wenig Erfahrung habe.

Lösung

Ihre Wahl der Spalten J, M, N usw., dass die Spalte j + 3 M und die Spalte M + 3 P usw. ist, ist in Ordnung

Ihre eigentlichen Daten beginnen in Zeile 2, wobei Zeile 1 Spaltenüberschriften sind

Zumindest in Spalte J gibt es keine Lücke in den Daten

aber Sie haben geschrieben, dass, wenn der Unterschied zwischen den Zellen der beiden Blätter eiteshr> 20 oder weniger als 20 ist, es gefärbt werden sollte. Das heißt, nur wenn es 20 ist, ist es nicht gefärbt. IST DIESE LOGIK OK? Bitte überprüfe es nocheinmal

unter dieser Annahme ist das Makro unten angegeben. teste es und poste Kommentare.

Wenn es einen Fehler gibt, sollte der Fehler klar geklärt werden. Wenn das Makro die Zeile stoppt, in der es stoppt, und eine Fehlermeldung.

das zweite Makro macht die Färbung rückgängig ;. Ich habe die Farbnummer als r 3 für rot verwendet. Wenn Sie auf Lavendel bestehen, müssen Sie die Nummer der Farbe herausfinden, da ich möglicherweise falsch verstehe, was Sie mit Lavendel meinen. in einer leeren Zelle

färben Sie die Zelle in Lavendel. Angenommen, die Zelle ist E13, dann gehe zum VB-Editor-Direktfenster und tippe Folgendes ein:

? range ("e13"). interior.colorindex

und halten Sie den Cursor am Ende dieser Zeile und drücken Sie die Eingabetaste und Sie erhalten die Farbnummer. benutze das im Makro.

Die beiden Makros sind:

 Untertest () Dim col1 As Integer, col2 As Integer, col As Integer, rrow As Integer Dim lastrow As Integer col1 = Bereich ("J1"). Spalte col2 = Bereich ("Y1"). Spalte lastrow = Arbeitsblätter ("sheet1") ") .Range (" J2 "). End (xlDown) .Row 'MsgBox lastrow Worksheets (" sheet1 "). Cells.Interior.ColorIndex = xlNone For col = col1 To col2 Step 3 For rrow = 2 To lastrow' MsgBox Cells (1, col) .Address 'MsgBox rrow If Arbeitsblätter ("sheet1"). Zellen (rrow, col) - Arbeitsblätter ("sheet2"). Zellen (rrow, col)> 20 Or _ Arbeitsblätter ("sheet2"). Zellen (rrow, col) - Arbeitsblätter ("sheet2"). Zellen (rrow, col) <20 Dann Arbeitsblätter ("sheet1"). Zellen (rrow, col) .Interior.ColorIndex = 3 End If Next Next End Sub 

 Sub undo () Arbeitsblätter ("sheet1"). Cells.Interior.ColorIndex = xlNone End Sub 

Hinweis

Danke an venkat1926 für diesen Tipp im Forum.

Vorherige Artikel Nächster Artikel

Top-Tipps