excel makros erklärung

...komplette Frage anzeigen

4 Antworten

Dazu müsstest Du aber zumindest die Grundlagen von VBA sehr gut beherrschen und dann noch jemanden finden, der sehr viel Zeit und Lust hat sehr viel zu schreiben.
Denn "so mal auf die Schnelle" ist das nicht erklärt.
Ich kann mir zwar zusammenreimen, was da Schritt für Schritt gemacht wird, aber darüber einen Aufsatz zu schreiben, sorry, dazu fehlt mir leider der Ehrgeiz.
Wie "fit" bist Du denn in VBA?

22goalie22 07.06.2014, 11:25

ich versteh ja alles bis zu diesem 'set' befehl. ein bisschen was zusammen reimen wäre schon ausreichend.

0

"ich versteh ja alles bis zu diesem 'set' befehl"
Für Objekte reicht oft nicht das einfache Dim, sondern sie müssen "gesetzt" werden mit Set (ein häufiger Fehler, dass man das vergisst, auf den man nicht hingewiesen wird. ich glaube dann, wenn eine "Liste" erstellt werden muss alle "Zelle" werden für For Each... gelistet)
was For Output As #1 soll. weiß ich auch nicht, vermutlich als vorderste Datei oder Fenster (was es sowieso ist nach dem Öffnen)
Für jede Zelle in allen Zeilen des Bereichsumfangs (also nicht die ganzen Zeilen, nur soweit im Bereich): Vermeidet unnötig lange Laufzeiten, wird aber heute -glaube ich- automatisch abgekürzt. "Zelle" könnte auch beliebig anders heissen, sofern mit dim oben eingeführt.
Instr(..,..,..) entspricht bei Option Compare Text in der Ersten Modulzeile =suchen(..,..,..), bei Option Compare Binary =finden(..,..,..)
ich denke der Rest ist ziemlich selbsterklärend,

Iamiam 07.06.2014, 15:48

Wenn Du zB per InputBox einen Bereich angibst, kannst du den als einfachen Adressen-String wiedergeben: A1:B3
oder, wenn die Inputbox den Typ 8 hat (letztes Argument), den Bereich zeigen.
In diesem Fall muss ebenfalls ein Set Inputvariable = inputbox(.....;8) davor.

1
Iamiam 07.06.2014, 15:52
@Iamiam

sehe grade die AW von Distel: ich denke, das ergänzt sich wunderbar, nur verschiedene Perspektiven!
Und Ergänzung: ich glaube, obiges Beispiel muss heissen:
Set Inputvariable = Application.inputbox(.....**;8*)

1
Iamiam 07.06.2014, 16:14
@Iamiam

noch was: ich hab zu lange nicht mehr ernsthaft programmiert:
probier mal
sub Grossklein()
Debug.Print InStr(1, "ABCDeFG", "E")
'als Argument in der Formel: vbbinarycompare, vbtextcompare, vbdatabasecompare
end sub
da richtet sich instr() zunächst nach der Moduloption.
Du kannst aber mit dem vierten Argument das an Ort und Stelle ändern, musst es also nicht in die Modulvorgabe reinschreiben!
Das Ergebnis des Subs findest Du dann im Direktfenster, falls du das noch nicht kennst

0
22goalie22 07.06.2014, 16:32

vielen dank!

0

Hallo Goalie,

ich hätte das aus dem Stand auch nicht erklären können, was dieses "Set" genau bedeutet.
Aber wozu gibt es die gute alte Tante Google? Mit den Reizworten "Excel VBA Set" erhält man schon einiges an Antworten von ihr, z.B. diese hier (von Alex):

Es gibt aber 2 Typen von Variablen. Einmal die Primitiven Datentypen. Sie werden direkt auf dem Stack abgelegt. Dann gibt es noch die Objekte, diese werden im Heap abgelegt. Aber um auf sie zuzugreifen, musst du eine Referenz anlegen, die im Stack liegt. Das heißt im Stack liegt nur ein Wert (die Adresse vom Heap), wo sich das Object befindet!
Eine Referenz legst du via Set an! Vorher musst du aber noch sagen um was es sich handelt ( Was für ein Object) Das machst du ueber eine normale Declaration.
Dim DeineVariable = DeinObject
SET DeineVariable = DeinObject

Quelle: http://computer.wer-weiss-was.de/visual-basic/vba-excel-schluesselwort-set-erklaerung

Distel

22goalie22 07.06.2014, 16:33

danke vielmals!

0

Ab mindestens Excel brauchst du kein Makro. Du kannst es direkt als CSV Datei speichern. Kostenlose Programme, wie OpenOffice oder Libre Office können es von zu Hause aus. Beide Programme gibt es auch Portable Versionen.

BoskoBiati 06.06.2014, 21:49

Ich denke es geht hierbei eher um eine Verständnisfrage.

2

Was möchtest Du wissen?