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

Forumthread: der variable einen Wert zuweisen

der variable einen Wert zuweisen
24.02.2009 12:05:15
Frank
Moin moin,
bin ein bisschen aus der Übung..... ;0)
dim Zahl as integer
range("a1").select
ActiveCell.FormulaR1C1 = "=Rand()"
Zahl = Range("A1").Value
anschließend möchte ich mit der Zufallszahl in der Variable Zahl weitermachen.....
Aber in der Variable Zahl bleibt hartnäckig 0......
was mache ich falsch? Das kann doch nur ein Deppen-Fehler sein?
Danke!
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: der variable einen Wert zuweisen
24.02.2009 12:11:52
Ramses
Hallo
"...Das kann doch nur ein Deppen-Fehler sein?..."
Ja :-)
Zufallszahl produziert zufällige Zahlen >0 und <=1
Hat's schon geklingelt ? Nein
Deine Variable "Zahl" wurde als Integer angegeben, daher werden alle Nachkommastellen abgeschnitten.
Hat's nun geklingelt ? Nein,.. immer noch nicht ?
Wenn Zufallszahl keine Zahl >=1 produzieren kann, und 1 ist ein 4 facher 6er im Lotto an 4 wochen hintereinander,... dann kommt halt immer 0 raus :-9
Definiere deine Varialble als "Double" dann haut das hin.
Es geht aber auch einfacher
Sub test()
    Dim zahl As Double
    Randomize Timer
    zahl = Rnd
End Sub

Gruss Rainer
Anzeige
AW: der variable einen Wert zuweisen
24.02.2009 12:14:40
Frank
Danke!
Mea maxima Depp!
Irrtum...
24.02.2009 15:32:46
Lothar
Falsch:
Zufallszahl produziert zufällige Zahlen >0 und richtig:
Zufallszahl produziert zufällige Zahlen >=0 und mfg Lothar
=RAND() liefert eine Dezimalzahl zw. 0 und 1
24.02.2009 12:13:08
NoNet
Hallo Frank,
mit der funktion =RAND() (deutsch: =ZUFALLSZAHL()) ermittelst du eine Zufallszahl zwischen 0 und 1 (also eine DEZIMAL-Zahl !)
Dein Variablentyp ist jedoch INTEGER (also: GANZZAHL zw. -32767 und 32768).
Deine Zufallszahl wird also gerundet (oder gekürzt ?) an die INTEGER-Variable übergeben und das ergibt (nahezu) immer 0.
Ändere den Variablentyp mal auf DOUBLE (oder zumindest SINGLE).
Ich habe es nicht ausprobiert, aber es sollte helfen...
Gruß, NoNet
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Wert einer Variable in Excel VBA zuweisen


Schritt-für-Schritt-Anleitung

  1. Variable definieren: Zuerst musst du eine Variable in VBA definieren. Beispiel:

    Dim Zahl As Double
  2. Zufallszahl generieren: Verwende die Funktion Rnd für eine Zufallszahl. Stelle sicher, dass du die Funktion in einer Sub-Prozedur verwendest.

    Randomize Timer
    Zahl = Rnd
  3. Wert in eine Zelle schreiben: Um den Wert der Zufallszahl in eine Zelle zu schreiben, verwende:

    Range("A1").Value = Zahl

Durch diese Schritte hast du erfolgreich einer Variable einen Wert zugewiesen.


Häufige Fehler und Lösungen

  • Fehler: Die Variable bleibt auf 0.

    • Lösung: Stelle sicher, dass du die Variable als Double und nicht als Integer definierst. Integer kann nur ganze Zahlen speichern und schneidet Nachkommastellen ab.
  • Fehler: Die Zufallszahl wird als Ganzzahl angezeigt.

    • Lösung: Verwende die Funktion Rnd korrekt und definiere die Variable als Double, um Nachkommastellen zu erhalten.

Alternative Methoden

Eine alternative Methode, um einer Variable einen Wert zuzuweisen, ist die Verwendung von Application.WorksheetFunction. Damit kannst du auch Zufallszahlen mit Kommazahlen generieren:

Zahl = Application.WorksheetFunction.Rand()

Diese Methode funktioniert ähnlich, aber gibt dir mehr Kontrolle über die Zufallszahl.


Praktische Beispiele

Hier ist ein einfaches Beispiel für das Zuweisen eines Wertes an eine Variable in Excel VBA:

Sub Beispiel()
    Dim Zufallszahl As Double
    Randomize
    Zufallszahl = Rnd
    Range("B1").Value = Zufallszahl
End Sub

In diesem Beispiel wird eine Zufallszahl in die Zelle B1 geschrieben. Achte darauf, dass der Variablentyp Double ist, um die Dezimalstellen korrekt zu speichern.


Tipps für Profis

  • Wenn du eine Public-Variable verwenden möchtest, definiere sie in einem Modul:

    Public Zufallswert As Double
  • Nutze die Randomize-Funktion, um verschiedene Zufallszahlen bei jedem Programmaufruf zu erhalten.

  • Experimentiere mit verschiedenen Datentypen wie Single oder Double, je nach Genauigkeit, die du benötigst.


FAQ: Häufige Fragen

1. Warum bleibt meine Variable auf 0?
Das liegt wahrscheinlich daran, dass du die Variable als Integer definiert hast. Ändere sie auf Double, um Nachkommastellen zu speichern.

2. Wie kann ich eine Zufallszahl zwischen 1 und 10 generieren?
Verwende den folgenden Code:

Zahl = Int((10 - 1 + 1) * Rnd + 1)

Dies gibt dir eine Zufallszahl zwischen 1 und 10.

3. Was ist der Unterschied zwischen Single und Double?
Single benötigt weniger Speicherplatz und hat eine geringere Genauigkeit. Double bietet mehr Präzision und kann größere Zahlen speichern.

4. Wie kann ich einen Zufallsbereich mit Nachkommastellen erstellen?
Definiere die Variable als Double und verwende Rnd für die Erzeugung von Zufallszahlen mit Kommazahlen.

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