Mit VBA ein Arbeitsblatt Karte zu erstellen

Haben Sie jemals versucht Gefühl von einem unbekannten (und komplizierte) Excel-Arbeitsmappe zu machen? Es wäre hilfreich, um eine Karte zu sehen, die einen Überblick Konstanten von denen Zellen liefert enthalten und die Zellen enthalten Werte.

Menu

Sie können eine VBA-Dienstprogramm erstellen, die eine Karte von dem aktiven Arbeitsblatt erzeugt. Die Karte wird auf einem neuen Arbeitsblatt erzeugt, und es besteht aus farbkodierten Zellen, die Sie schnell zu identifizieren Werte, Text und Formeln lassen.

Im Folgenden finden Sie ein Beispiel für eine solche Karte. Die Zellen, die Text enthalten sind grün, als diejenigen enthalten einen numerischen Wert sind gelb, und Zellen, die Formeln enthalten sind rot. Eine solche Karte hilft Ihnen mögliche Fehler zu erkennen. Zum Beispiel, wenn eine Formel in einem Block von Formeln, die von einem Wert überschrieben wurde, wird die Zelle in der Kartenansicht abheben (wie in Zelle Q11 im Beispiel).

bild0.jpg

Der QuickMap VBA-Code

Die VBA-Prozedur, die das Arbeitsblatt Karte erzeugt ist unten aufgeführt. Wenn Sie dieses Dienstprogramm verwenden möchten, kopieren Sie einfach den Code und es zu einem VBA-Modul einfügen. Dann aktivieren Sie ein Arbeitsblatt und führen Sie das QuickMap Unterprogramm.

Sub QuickMap () Dim FormulaCells Als VariantDim TextCells Als VariantDim NumberCells Als VariantDim Gebiet Als RangeIf Type-Name (Active) lt;> # # 147-Arbeitsblatt 148- Then Exit Sub 'erstellen Objektvariablen für Zelle subsetsOn Error Resume NextSet FormulaCells = Range (# 147-A1 # 148 -). Special _ (xlFormulas, xlNumbers + xlTextValues ​​+ xlLogical) Set TextCells = Range (# 147-A1 # 148 -.) Special (xlConstants, xlTextValues ​​Set NumberCells) = Range (# 147-A1 # 148 -.) Special (xlConstants, xlNumbers) On Error GoTo 0 'ein neues Blatt und Format itSheets.AddWith Zellen hinzufügen. Column = 2.Font.Size = 8.HorizontalAlignment = xlCenterEnd WithApplication.ScreenUpdating = false Do 'die Formel cellsIf Nicht IsEmpty (FormulaCells) ThenFor jeden Bereich FormulaCells.AreasWith ActiveSheet.Range (Area.Address) .Value = # 147-F # 148-.Interior.ColorIndex = 3End WithNext AreaEnd Wenn 'Sie den Text cellsIf Nicht IsEmpty (TextCells) ThenFor jeden Bereich TextCells.AreasWith ActiveSheet.Range (Area.Address) .Value = # 147-T # 148-.Interior.ColorIndex = 4End WithNext AreaEnd Wenn 'Sie die numerische cellsIf Nicht IsEmpty (NumberCells) ThenFor jeden Bereich NumberCells.AreasWith ActiveSheet.Range (Area.Address) .Value = # 147-N # 148-.Interior.ColorIndex = 6End WithNext AreaEnd IfEnd Sub

Wie es funktioniert

Das Verfahren prüft zuerst sicherstellen, dass das aktive Blatt ist ein Arbeitsblatt. Wenn es nicht ist, dann ist es eine schnelle Ausfahrt ohne weitere Aktion. Wenn das aktive Blatt ein Arbeitsblatt ist, erstellt das Verfahren drei Objektgrößen durch die Verwendung von Special Verfahren, die verschiedenen Zelltypen zu identifizieren. Das Special Methode ist sehr nützlich. Wenn Sie sich nicht mit ihm vertraut, überprüfen Sie es in Excel in der Online-Hilfe-Datei aus. Beachten Sie die Verwendung von On Error Resume Next. Dies ist der Fehler zu vermeiden, die auftritt, wenn keine Zellen qualifizieren - zum Beispiel, wenn das Arbeitsblatt keine Formeln hat.

Als nächstes fügt die Prozedur ein neues Arbeitsblatt, verringert die Zellenbreite und stellt die horizontale Ausrichtung auf die Mitte. Dieser Schritt ist Kosmetikums. Die Unter schaltet dann die Aktualisierung des Bildschirms aus die Dinge ein wenig zu beschleunigen.

Die nächsten drei Codeblöcke verarbeiten die Zellen. Wenn keine Zellen zu qualifizieren, ist die Objektvariable leer, so dass die Untertests für diese. Dann springt die Routine durch jede Fläche im Bereich Objekt und formatiert die Zelle. Sie können diesen Teil des Unterprogramms anpassen, um eine andere Formatierung anwenden.

Schauen Sie sich die Power-Utility-Pak-Add-In für eine viel anspruchsvollere Version dieses Dienstprogramms.

Menü