Hier ist einer für Joel ...
Ich bin auf der Suche nach Möglichkeiten, einem Excel-Benutzer (ohne Programmiererfahrung) zu demonstrieren, wie Excel Excel VBA das Arbeiten mit Excel ein wenig erleichtern kann.
Die ersten Gedanken bestehen darin, ein Beispiel zu verwenden, das die manuelle Optimierung einer Tabellenkalkulation repliziert, beispielsweise die bedingte Formatierung aller Daten mit einem Klick. Zum Beispiel: Hervorhebung aller Zahlen rot, orange oder grün entsprechend Benutzereingabeschwellen, gekoppelt mit einigen abgeleiteten Daten wie der aktuellen Geschäftswoche.
Ich hoffe, dass ein so kurzes VBA-Beispiel für jemanden, der noch nie eine Codezeile geschrieben hat, nicht zu schwer zu fassen ist und hoffentlich dafür spricht, ein bisschen Excel-VBA zu lernen.
In diesem Beispiel ist die Zeit, die zum Codieren benötigt wird, jedoch nicht wesentlich kürzer als das manuelle Anwenden der bedingten Formatierung in Excel. Daher wäre es interessant zu wissen, ob jemand in der Community elegantere Beispiele hat, die die Vorteile von Excel VBA demonstrieren.
Ideale Beispiele hätten die folgenden Eigenschaften:
Bedenken Sie, dass die Zielgruppe ihre ersten Schritte in die Programmierung unternimmt.
Wenn Sie können, achten Sie darauf, dass sie Excel für eine halbe Stunde verwenden und Sie werden die perfekte Gelegenheit finden. Wenn Sie diese eine Tabelle öffnen, automatisch alle Spalten formatieren, Spalte A als Datum formatieren, Spalte rechtsbündig ausrichten J, Zeilen 2 bis 5 löschen und die Druckausrichtung in Querformat ändern, dann haben Sie einen Gewinner gefunden. Lassen Sie sie es erneut machen, aber mit dem Makro-Recorder an. Dann den Makrorecorder erneut abspielen.
Durch die Arbeit mit etwas, das sie im wirklichen Leben benutzen, wird es mehr Wirkung haben.
Sie müssen sie nicht 1/2 Stunde pro Tag mit dem ersten Schuss speichern. Sparen Sie ihnen 30 Sekunden Plackerei auf etwas, das sie benutzen werden, und sie fangen an, an alle Dinge zu denken, die sie automatisieren wollen. Meiner Erfahrung nach werden sie ziemlich schnell über Bord gehen. In kürzester Zeit wollen sie, dass Excel ein Webformular ausfüllt, die Informationen importiert und ihnen einen Kaffee bringt.
Erstellen Sie Ihre eigene "Funktion" mit VBA, die Sie wie eine andere Funktion innerhalb des Blattes verwenden können.
Sie können Dinge tun, die in Excel nicht oder nur sehr schwer zu implementieren oder wiederzuverwenden sind.
Ein Beispiel:
In VBA ein neues Modul erstellen, Code wie folgt hinzufügen:
%Vor%Sie können SizeOfFile jetzt in einer Formel in einer Zelle verwenden.
Wenn Zelle A1 den Namen einer Datei enthält, füllen Sie B1 mit =SizeOfFile(A1)
, um die Größe zu erhalten.
Auch
Sie können die Aufnahme (und Bearbeitung) eines Makros anzeigen, um die häufig ausgeführten Schritte zu wiederholen.
Sind die Nutzer in der Zielgruppe starke Nutzer?
Wenn ja, wie wäre es, Daten aus mehreren Arbeitsmappen mit externen Referenzen zu kombinieren? Ich bin mir nicht sicher, ob externe Referenzen der beste Weg sind, um dies zu tun, und ich bin mir nicht sicher, wie schwierig das für jemanden sein würde, der neu in VBA ist, aber das habe ich in der Vergangenheit getan.
Beispiel 1
Es gibt viele Excel-Dateien, die einer Namenskonvention folgen:
%Vor%Ich wollte die ID-Nummern in einer Spalte eingeben können und eine VBA haben, um die Daten für mich für alle anderen Spalten zu erhalten. Ich entschied mich dafür, externe Referenzen zu machen, weil ich mich dann nicht darum kümmern musste, Dateien zu öffnen und zu schließen und mich darum zu kümmern, ob diese Dateien existierten oder nicht.
Ich wollte, dass das Ergebnis so aussieht:
%Vor%Ich brauchte VBA nicht, um den Hyperlink zu erstellen, aber ich konnte keinen einfachen Weg finden, externe Referenzen ohne VBA zu erstellen. Ich habe versucht, INDIRECT zu verwenden, aber das referenzierte Arbeitsbuch musste geöffnet werden, damit INDIRECT funktioniert. Also habe ich VBA verwendet, um die externen Referenzen zu erstellen.
Beispiel 2
Dies ist ähnlich wie in Beispiel 1, aber ich musste verschiedene Diagrammdaten kombinieren.
Die Daten in jeder Excel-Datei waren in Spalten:
%Vor%Ich wollte die kombinierten Diagrammdaten in Zeilen:
%Vor%Also habe ich eine VBA erstellt, die ein Formel-Array mit einer externen Referenz in eine TRANSPOSE-Datei eingefügt hat.
Das data1 formula-Array sah ungefähr so aus:
%Vor%Ich weiß nicht, wie andere Excel und VBA verwenden, aber diese erwiesen sich als äußerst nützlich für mich.
Francis
Meine ersten vorsichtigen Schritte in VBA wurden unternommen, nachdem ich einer Firma beigetreten war. Eines meiner neuen Teams verbrachte jeden Morgen 30 Minuten damit, einen Bericht aus einer Liste von etwa 1.000 Artikeln zu erstellen, die auf verschiedene Arten automatisch gefiltert werden mussten zählt. Ein paar Stunden mit VBA herumzupfuschen hatte die Aufgabe bis auf einen Knopfdruck und ungefähr eine Sekunde.
Alles, was eine Schleife beinhaltet, erfüllt Ihre ersten Kriterien einer erheblichen Zeitersparnis. Vielleicht eine Aufgabe, bei der die Vorwahlnummern oder Hausnummern aus einer Liste von 200 Telefonnummern oder Adressen extrahiert werden?
Hier ist ein toller MSDN-Link für diese Frage. Ссылка
hat alles, was Sie für eine kurze Preso brauchen.