Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1408to1412
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
Inhaltsverzeichnis

Überlauf bei Abfrage: Target.Count

Überlauf bei Abfrage: Target.Count
18.02.2015 08:15:54
Matthias L

Hallo Excelfreunde
Warum bekomme ich einen VBA-Fehler bei dieser ganz normalen Abfrage?

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count = 1 Then
MsgBox "ok ..."
End If
End Sub
... wenn ich alle Zellen markiere?
Laufzeitfehler '6':
Überlauf


Ok ... kann man abfangen, ich möchte aber wissen warum ich die Fehlermeldung bekomme.
Excel-Bug?
In Xl2000 funktioniert das noch ohne Fehler!
Sind ja auch wesentlich weniger Zeilen und Spalten.
Kann es sein das hier MS mal wieder nicht aufgepasst hat?
Wie verhält es sich denn in den Versionen ab XL2007 ?
Danke schonmal fürs Lesen
Gruß Matthias

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

Betreff
Datum
Anwender
Anzeige
AW: Überlauf bei Abfrage: Target.Count
18.02.2015 08:28:35
Hajo_Zi
Du hast die ganze Tabelle markiert.
Ab 2007 sollte man
Public Sub Beispiel()
Dim dblCount As Double
dblCount = CallByName(Selection, IIf(Val( _
Application.Version) > 11, "CountLarge", "Count"), VbGet)
MsgBox dblCount
End Sub

‘ von Nepumuk
benutzen.

Ok, macht Sinn :-) Danke, Hajo ... owT
18.02.2015 08:39:36
Matthias L

AW: Ok, macht Sinn :-) Danke, Hajo ... owT
20.02.2015 17:04:05
Luschi
Hallo Matthias,
die Sinnhaftigkeit 'CallByName' in diesem Fall ist für mich nicht gegeben. Bei mir ergibt Dein geposteter Code in E2010/2013 keinen Fehler, auch wenn ich die ganze Spalte markiert habe.
Target.Count ergibt als Datentyp immer! ein 'Long' [(zu überprüfen mit VarType(Target.count)], auch wenn Target nur aus 1er selektierten Zelle besteht - während hinter dem der '1' sich der Datentyp 'Integer' verbirgt.
Es wird also immer ein 'Long' mit einem 'Int' verglichen und da haben Vba, Vb6 & VB.Net/C# die entsprechenden Datentyp-Cast-Methoden. Wäre das nicht so, dann müßte es im Code von Nepumuk ja auch mächtig knistern, denn Val(Application.Version) ergibt als Datentyp 'Double'.
Es muß also was Anderes sein, was den Code bei Dir stolpern läßt.
Ich verwende die Prüfung übrigens immer so: If Target.Cells.Count = 1 Then
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Ok, macht Sinn :-) Danke, Hajo ... owT
20.02.2015 17:36:57
Hajo_Zi
es hatte niemand was von einer Spalte geschrieben.
Gruß Hajo

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige