Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
444to448
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
444to448
444to448
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Werte aufaddieren + Laufzeitfehler

Werte aufaddieren + Laufzeitfehler
28.06.2004 09:40:41
Daniel
Hallo zusammen!
Ich habe ein Makro geschrieben, das eine Zeile in einer Tabelle durchlaufen soll, jeden zweiten Wert addieren und das Ergebnis nachher in einer Meldung ausgeben soll:
Dim a As Variant
Dim b As Variant
Dim ls As Variant
Dim s As Variant
ls = Cells(ActiveCell.Row, 256).End(xlToLeft).Column
For s = 1 To ls Step 2
a = Cells(ActiveCell.Row, s)
b = b + a
Next
MsgBox a
Wenn ich das Makro starte kommt es nur bis zur Stelle b= b+ a und gibt die Fehlermeldung "Laufzeitfehler 13 Typen unverträglich" aus.
Weiss jemand einen Ausweg? Meiner Meinung nach müsste es funktionieren, denn die Typen sind doch gleich?
Mfg Daniel

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte aufaddieren + Laufzeitfehler
Reinhard
Hi Daniel,
anscheinend addierst du da Äpfel mit Birnen, probier mal

Sub tt()
Dim a As Variant
Dim b As Variant
a = 1
b = "1"
MsgBox "a=" & TypeName(a) & " b=" & TypeName(b)
End Sub

Das gäbe sicher auch Fehler13 bei a+b
Gruß
Reinhard
AW: Werte aufaddieren + Laufzeitfehler
28.06.2004 09:49:56
Holger
Hallo Daniel,
der Datentyp Variant kann auch ein String sein, dann wäre die numerische Addition u.U.fehlerhaft. Ändere den Typ von a und b auf z.B. double. Dann wirst Du sehen, was falsch ist.
mfg Holger
AW: Werte aufaddieren + Laufzeitfehler
Josef
Hallo Daniel!
Sind vieleicht Textwerte in der Zeile?
Probier's so.

Sub daniel()
Dim a As Variant
Dim b As Double
Dim ls As Integer
Dim s As Integer
ls = Cells(ActiveCell.Row, 256).End(xlToLeft).Column
For s = 1 To ls Step 2
a = Cells(ActiveCell.Row, s)
If IsNumeric(a) Then b = b + a
Next
MsgBox b
End Sub

Gruß Sepp
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige