Arrays in Range
05.10.2013 10:53:41
hype
Hallo was vorher mit String und ganzahligen Werten geklaptp hat klappt iwie nicht mehr mit Daten (Pl. von Datum mein ich).
Folgender Fall: Ich möchte alle Arbeitstage ab dem 24.09.2013 bis genau ein Jahr zurück mir in einem sheet ab dem 24.09.2013 abwärts, auflisten lassen. Also bis 24.09.2012
Code:
Sub InputDatumWL()
Application.ScreenUpdating = False
Dim a(250) As Date, x As Integer, y As Byte
Dim wk As Worksheet, LoadEingabe As Worksheet
Set wk = ThisWorkbook.Worksheets("Werk_Kalender")
Set LoadEingabe = ThisWorkbook.Worksheets("Eingabe")
With ThisWorkbook.Worksheets("WL")
a(x) = CDate("24.09.2013") 'CDate(LoadEingabe.[D11])
.Cells(x + 4, 1) = CDate("24.09.2013") 'LoadEingabe.[D11]
y = WorksheetFunction.NetworkDays(a(x) - CDate(364), a(x), wk.Range("A2:S27"))
Debug.Print a(0)
For x = 1 To y - 1
a(x) = WorksheetFunction.WorkDay(a(x - 1), -1#, wk.Range("A2:S27"))
.Cells(x + 4, 1) = WorksheetFunction.WorkDay(a(x - 1), -1#, wk.Range("A2:S27"))
'Debug.Print a(x)
Next x
'Debug.Print a(x - 1)
.Range(.Cells(4, 1), .Cells(x + 14, 1)) = a()
End With
End Sub
normaler weise müsste ohne '.Cells(x + 4, 1) = WorksheetFunction.WorkDay(a(x - 1), -1#, wk.Range("A2:S27"))
in der letzten Zeile
'.Range(.Cells(4, 1), .Cells(x + 14, 1)) = a()
das komplette Array in die Range übertragen werden. Tuts aber iwie nicht!