Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1232to1236
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

Array, die ich weiß nicht Wievielte

Array, die ich weiß nicht Wievielte
Frank
Hallo liebe Leute, ich habe mal wieder eine Frage zu Array.
Mit folgendem Code lese ich die Laufwerke aus

ReDim LWArray(Asc("C") To Asc("Z"))
For i = Asc("C") To Asc("Z")
ChDrive Chr(i)
If Err = 0 Then LWArray(i) = LW & Chr(i)
Err = 0
Next

Nun kann dieses Array auch leere Felder enthalten.
Wie kann ich diese löschen?
Ich hatte schon mal daran gedacht per loop in ein zweiten Array zu schreiben
habe aber noch keien Lösungsansatz gefunden.
Bin für jede Hilfe dankbar
Gruß
Frank
AW: Array, die ich weiß nicht Wievielte
30.09.2011 12:14:19
Rudi
Hallo,

Sub DriveLetters()
Dim fs, d, oDrives As Object, arrDrives
Set oDrives = CreateObject("Scripting.dictionary")
Set fs = CreateObject("Scripting.FileSystemObject")
For Each d In fs.drives
oDrives(d.DriveLetter) = 0
Next
If oDrives.exists("A") Then oDrives.Remove ("A")
If oDrives.exists("B") Then oDrives.Remove ("B")
arrDrives = oDrives.keys
End Sub

Gruß
Rudi
AW: Array, die ich weiß nicht Wievielte
30.09.2011 12:26:57
Frank
Hallo Rudi,
danke erst mal für die Antwort.
Dein Code betrachtet alle Laufwerke.
Ich lese aber nur die Festpallten- bzw Netzwerklaufwerke aus.
Und komisch ist das ein Laufwerk "B" angezeigt wird obwohl nicht vorhanden
Gruß Frank
Anzeige
AW: Array, die ich weiß nicht Wievielte
30.09.2011 12:56:48
Rudi
Hallo,
dann eben so:

Sub DriveLetters()
Dim fs, d, oDrives As Object, arrDrives
Set oDrives = CreateObject("Scripting.dictionary")
Set fs = CreateObject("Scripting.FileSystemObject")
For Each d In fs.drives
Select Case d.drivetype
Case 2, 3: oDrives(d.DriveLetter) = 0
End Select
Next
arrDrives = oDrives.keys
End Sub

Gruß
Rudi
AW: Array, die ich weiß nicht Wievielte
30.09.2011 13:40:01
Frank
Hallo Rudi,
vielen Dank für deine Mühe.
Aber leider kann ich deinen Ansatz nicht nachvollziehen.
Ich habe es jetzt so gelöst.

For i = Asc("C") To Asc("Z")
ChDrive Chr(i)
If Err = 0 Then LFW(i) = LW & Chr(i)
Err = 0
Next
ReDim LWArray(1 To 23)
For i = Asc("C") To Asc("Z")
If LFW(i)  "" Then
LWArray(x) = LFW(i)
x = x + 1
ReDim Preserve LWArray(1 To x)
End If
Next

Ist wahrscheinlich nicht die eleganteste Lösung aber genügt meinen Zwecken.
Trotdem nochmal Danke Rudi
Gruß
Frank
Anzeige
AW: Array, die ich weiß nicht Wievielte
30.09.2011 13:56:18
Rudi
Hallo,
vielleicht verstehst du das. Ist näher an deinem Ansatz.

Sub xxx()
Dim strLW As String, LWArray, i As Integer
On Error Resume Next
For i = Asc("C") To Asc("Z")
ChDrive Chr(i)
If Err = 0 Then strLW = strLW & Chr(i) & ","
Err = 0
Next
strLW = Left(strLW, Len(strLW) - 1)
LWArray = Split(strLW, ",")
End Sub

Gruß
Rudi
AW: Array, die ich weiß nicht Wievielte
30.09.2011 13:48:19
Henrik
Interessante Lösung, danke!!!

Sub DriveLetters()
Dim fs, d, oDrives As Object, arrDrives
Set oDrives = CreateObject("Scripting.dictionary")
Set fs = CreateObject("Scripting.FileSystemObject")
For Each d In fs.drives
Select Case d.drivetype
Case 2, 3: oDrives(d.DriveLetter) = 0
End Select
Next
arrDrives = oDrives.keys
End Sub

Anzeige
wenigsten einer ...
30.09.2011 14:06:38
Rudi
Hallo,
dem's gefällt.
Ist vor allem schneller als try and error mit ChDrive.
Gruß
Rudi
AW: wenigsten einer ...
30.09.2011 14:09:02
Frank
...naja hat ja nicht's mit gefallen oder nicht gefallen zu tun.
Mit meinen, doch sehr beschränkten Kenntnissen, verstehe ich es nicht so ganz.
Aber ich gelobe Besserung
Frank
FSO : Nicht nur gefallen - sondern verstehen
30.09.2011 15:48:08
NoNet
Hallo Frank,
Rudis Methode per FileSystemObject (FSO) ist professioneller als Deine "Trial and Error"-Methode, da sie ein bereits im Betriebssystem vorhandenes Objekt (FSO) bzw. dessen Collection (also: Auflistung aller existierenden Objekt-Mitglieder - hier die Laufwerke) enthält.
Lies Dir mal folgenden Microsoft Technet-Artikel durch, dann sollte das Prinzip klarer werden :
http://www.microsoft.com/germany/technet/datenbank/articles/600360.mspx#EIF
Gruß, NoNet
PS @alle: Es sind nur noch 4 Wochen bis zu diesem Treffen :
Exceltreffen 28.-30.10.2011 in Chemnitz
Ein Treffen für alle Excel-Freunde und Besucher deutschsprachiger Excel-Foren.
Alle Infos - Programm - Anmeldung - Teilnehmerliste etc. gibt es auf
http://www.exceltreffen.de/index.php?page=211
Wir freuen uns auf euch...

Anzeige

241 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige