AW: Wie geht das einfacher, Schleife doppelt
25.06.2010 14:38:04
dan
Hallo Holger,
oder man koennte eine Klasse bilden, die das alles macht.
Gruss dan, cz.
Ein simples Beispiel:
' -------------------------------------------------------------
' Standart Module Code
' -------------------------------------------------------------
Option Explicit
' datei manager deklarieren
Private dateiNamen As DateiNamenManager
Public Sub Main()
On Error GoTo FinallyMain
' instance bilden
Set dateiNamen = New DateiNamenManager
' datei namem zugeben
dateiNamen.AddDateiName ("C:\juhu\juhu.xls")
dateiNamen.AddDateiName ("C:\juhu\juhu2.xls")
dateiNamen.AddDateiName ("C:\juhu\juhu3.xls")
Dim i As Variant
i = dateiNamen.DateiName(1)
i = dateiNamen.DateiName(2)
i = dateiNamen.DateiName(3)
i = dateiNamen.DateiName(4) ' error here
' dann alle datei namen pruefen lassen
dateiNamen.Pruefen
FinallyMain:
If (Err.Number 0) Then MsgBox Err.Description, vbCritical
' instance auf Nothing
Set dateiNamen = Nothing
End Sub
' -------------------------------------------------------------
' Class Module Code, Name DateiNamenManager
' -------------------------------------------------------------
Private dateiNamen As Collection
Private Sub Class_Initialize()
Set dateiNamen = New Collection
End Sub
Public Property Get DateiName(index As Integer) As String
If (index >= 1 And index
DateiName = dateiNamen.Item(index)
Else
Err.Raise vbObjectError + 1000, "DateiNamenManager.DateiName", "Index out of range"
End If
End Property
Public Sub AddDateiName(ByVal newDateiName As String)
dateiNamen.Add Item:=newDateiName, Key:="DateiName_" & dateiNamen.Count
End Sub
Public Sub Pruefen()
Dim dateiNamenItem As Variant
For Each dateiNamenItem In dateiNamen
If Dir(dateiNamenItem) "" Then
Kill dateiNamenItem
End If
Next dateiNamenItem
End Sub