Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Variable definieren ?

Variable definieren ?
23.05.2005 13:20:22
Silvi
Hallo und vielen Dank an alle Helfer!
Hab schon ein paar mal wegen diesem Makro geschrieben, muß jetzt nur noch wissen wie ich eine Variable deklariere.
#

Sub vergleichen3()
Dim i, lz As Integer
'Dim b, ? weiß nicht was hier eingesetzt werden muß
Dim c, Wert As Variant
Worksheets("Tabelle2").Activate
With Sheets("Tabelle3")
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
For b = 2 To 11
Wert = Cells(i, b)
lz = .Cells(Rows.Count, 1).End(xlUp).Row + 1
Set c = Sheets("Start").Columns(1).Find(What:=Wert, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then .Cells(lz, 1) = Cells(i, 1): .Cells(lz, b) = Cells(i, b)
Next b
Next i
End With
End Sub
#
Gruß
Silvi
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable definieren ?
23.05.2005 13:38:58
Fritz
Hi Silvi,
"b" ist ein Zähler, also Integer-Variable, für die Spalten in Deinem VBA-Code.
Dim b As integer
Fritz
AW: Variable definieren ?
23.05.2005 13:42:25
u_
Hallo,
in dem Fall reicht Dim b As Byte
i und lz solltest du aber als Long deklarieren falls die Tab mehr als 32767 Zeilen haben kann.

Sub vergleichen3()
Dim i As Long, lz As Long
Dim b as Byte
Dim c As Range, Wert As Variant
Worksheets("Tabelle2").Activate
With Sheets("Tabelle3")
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
For b = 2 To 11
Wert = Cells(i, b)
lz = .Cells(Rows.Count, 1).End(xlUp).Row + 1
Set c = Sheets("Start").Columns(1).Find(What:=Wert, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then .Cells(lz, 1) = Cells(i, 1): .Cells(lz, b) = Cells(i, b)
Next b
Next i
End With
End Sub

Gruß
Geist ist geil!
Anzeige
AW: Variable definieren ?
23.05.2005 13:44:55
Tobias
Hi Silvi,
die Variable ist eine Integer-Variable, da du mit ihr hochzaehlst. Wenn du allerdings alle Variablen deklarierst, solltest du im oberen Teil ein

Option Explicit

angeben - damit nimmt VBA nur Variablennamen an, die davor schon deklariert wurden. Das schuetzt dich bei groesseren Makroprojekten vor Fehlern.
Also, einfach

Option Explicit
Dim i, lz, b As Integer

Gruessle
Tobias
Anzeige
Frage natl. nicht mehr offen... (o.T.)
23.05.2005 13:45:32
Tobias
nix
@Tobias
23.05.2005 13:54:18
Kurt
hi Tobias,
Auszug aus der Hilfe:
Sie können mehrere Variablen in einer Anweisung deklarieren. Wenn Sie einen Datentyp angeben möchten, müssen Sie den Datentyp für jede Variable angeben. In der folgenden Anweisung werden die Variablen intX, intY und intZ als Integer deklariert.
Dim intX As Integer, intY As Integer, intZ As Integer
In der folgenden Anweisung werden intX und intY als Variant, und nur intZ als Integer deklariert.
Dim intX, intY, intZ As Integer
Sie müssen die Datentypen der Variablen in der Deklarationsanweisung nicht angeben. Wenn Sie den Datentyp nicht angeben, so wird die Variable auf den Typ Variant festgelegt
...und Tschüss Kurt
Anzeige
AW: @Tobias
23.05.2005 13:56:23
Tobias
Servus Kurt,
mea culpa, hab ich selbst nicht gewusst. Danke fuer den Hinweis (jetz versteh ich auch die Fehlermeldungen, die ich manchmal bekomm...).

Gruss

Tobias
AW: Variable definieren ?
23.05.2005 13:55:41
MichaV
Hi Tobias,
nur als Hinweis:
' Mehrere Deklarationen in einer Zeile. AndereVar hat den Typ
' Variant, da kein Typ angegeben wird.
Dim AndereVar, Auswahl As Boolean, GebDatum As Date
Gruss- Micha
Anzeige
AW: Variable definieren ?
23.05.2005 13:57:13
Tobias
Servus Micha,
Kurt hat mich auch schon drauf hingewiesen - danke Dir trotzdem, wusst ich bisher noch nich :-)

Gruss

Tobias
AW: Variable definieren ?
23.05.2005 14:05:39
MichaV
Hi,
ja, da hat sich was überschnitten...
Mich würde ja nun aber interessieren, welche Fehlermeldungen Du bekommst, wenn Du eine Variable als Variant deklarierst. Ich dachte, das geht immer, ist nur langsamer.
Gruss- Micha
Anzeige
AW: Variable definieren ?
23.05.2005 14:08:47
Tobias
Servus!
Also konkret kann ich dir jetzt kein Beispiel nennen, da ich alle Fehler diesbezueglich irgendwie immer unter Kontrolle bekommen hab, aber ich hatte teilweise Fehler, die mir sagten, dass irgendein Laufzeitfehler aufgetreten sei, den ich nicht erklaeren konnte.
Wenn ich mal wieder so nen Exot "produzieren" kann, geb ich dir auf jeden Fall im Offtopic-Forum Bescheid.
Gruss

Tobias
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Variablen in Excel VBA definieren


Schritt-für-Schritt-Anleitung

Um eine Variable in Excel VBA zu definieren, befolge diese Schritte:

  1. Öffne den VBA-Editor in Excel (Alt + F11).
  2. Erstelle ein neues Modul oder wähle ein bestehendes aus.
  3. Beginne das Skript mit der Zeile Option Explicit, um sicherzustellen, dass alle Variablen deklariert werden müssen.
  4. Definiere deine Variablen mit dem Dim-Befehl. Beispiel:
    Dim i As Long, lz As Long
    Dim b As Byte
    Dim c As Range, Wert As Variant
  5. Verwende die Variablen in deinem Code, wie im folgenden Beispiel:
    For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
       For b = 2 To 11
           Wert = Cells(i, b)
           lz = .Cells(Rows.Count, 1).End(xlUp).Row + 1
       Next b
    Next i

Häufige Fehler und Lösungen

  1. Nicht deklarierte Variablen: Wenn du Option Explicit verwendest, musst du alle Variablen deklarieren. Andernfalls erhältst du einen Fehler.

    • Lösung: Füge die Deklaration für alle Variablen hinzu, z.B. Dim b As Integer.
  2. Falsche Datentypen: Wenn du eine Variable mit einem Datentyp deklarierst, der nicht zu den verwendeten Werten passt, kann dies zu Laufzeitfehlern führen.

    • Lösung: Überprüfe, ob der Datentyp zu den Werten passt, die du speichern möchtest.
  3. Verwendung von Variant: Die Verwendung von Variant kann in manchen Fällen zu einer schlechteren Performance führen.

    • Lösung: Verwende spezifische Datentypen wie Integer, Long, String etc., wann immer möglich.

Alternative Methoden

  • VBA mehrere Variablen deklarieren: Du kannst mehrere Variablen in einer Zeile deklarieren, aber achte darauf, den Datentyp für jede Variable anzugeben. Beispiel:

    Dim i As Integer, j As Integer, k As Integer
  • Verwendung von Dim: Du kannst auch Dim verwenden, um Variablen ohne Datentyp zu deklarieren, aber sie werden dann als Variant betrachtet. Beispiel:

    Dim x, y As Integer

    Beachte, dass nur y als Integer deklariert wird.


Praktische Beispiele

Hier sind einige Beispiele, wie du VBA Variablen definieren kannst:

Beispiel 1: Definiere eine Zählvariable für eine Schleife:

Dim i As Long
For i = 1 To 10
    ' Code hier
Next i

Beispiel 2: Verwende eine Variable in einer Excel-Formel:

Dim wert As Double
wert = Application.WorksheetFunction.Sum(Range("A1:A10"))

Tipps für Profis

  • Option Explicit: Setze immer Option Explicit am Anfang deines Moduls, um sicherzustellen, dass du keine Tippfehler bei Variablennamen hast.
  • Typen restriktiv wählen: Verwende spezifische Datentypen, um die Performance deines Codes zu optimieren.
  • Dokumentation: Kommentiere deinen Code gut, besonders wenn du mehrere Variablen definierst, um die Lesbarkeit und Wartbarkeit zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich eine Variable in Excel definieren? Du kannst eine Variable in Excel definieren, indem du den Dim-Befehl verwendest, gefolgt von der Variablenbezeichnung und dem Datentyp. Beispiel: Dim i As Integer.

2. Was ist der Unterschied zwischen Variant und Integer? Variant kann jeden Datentyp speichern, ist jedoch langsamer. Integer ist schneller, kann aber nur ganze Zahlen speichern.

3. Wie deklariere ich mehrere Variablen in einer Zeile? Verwende das Komma, um mehrere Variablen zu deklarieren, aber achte darauf, den Datentyp für jede Variable anzugeben. Beispiel: Dim x As Integer, y As Long.

4. Warum sollte ich Option Explicit verwenden? Option Explicit zwingt dich dazu, alle Variablen zu deklarieren, was die Fehlersuche erleichtert und Tippfehler verhindert.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige