Ich brauche eine Reihe von Werten in einer Variablen zu setzen, das heißt die VariableSpeicher einen Bereich in einer Variablen
tsPeriod(1) = (3, 4, 5)
tsPeriod(3) = (1, 2, 3).
Ich weiß nicht, welche Art von Variable zu deklarieren und wie es zu tun. Ich habe versucht, so etwas zu tun:
Dim tsPeriod() as long
ReDim tsPeriod(nSub) as long
for i = 1 to nSub
tsPeriod(i) = (tsStart(i), tsEnd(i))
next
Aber es funktioniert nicht auf diese Weise und im kinda verloren arbeiten, wie der „Bereich“ in diese Variablen zu setzen. (Wenn der erste Wert 3 ist, und die zweite ist 6 möchte ich die Variable abzurufen (3, 4, 5, 6))
Unten ist ein Teil des Codes:
Dim wb As Workbook
Set wb = ThisWorkbook
Dim subjects As Worksheet
Set subjects = wb.Sheets("Subject")
Dim nSub As Integer, nRooms As Integer
nSub= subjects.Cells(Rows.Count, 1).End(xlUp).value
Dim tsStart() As Long
ReDim tsStart(nSub) As Long
For i = 1 To nSub
tsStart(i) = subjects.Cells(i + 1, 3).value
Next
Dim tsBusy() As Long
ReDim tsBusy(numDis) As Long
For i = 1 To nSub
tsBusy(i) = subjects.Cells(i + 1, 4).value
Next
Dim tsEnd() As Long
ReDim tsEnd(nSub) As Long
For i = 1 To nSub
tsEnd(i) = tsStart(i) + tsBusy(i) - 1
Next
'Here's where im having trouble
Dim tsPeriod() As Long
ReDim tsPeriod(nSub) As Long
For i = 1 To nSub
tsPeriod(i) = (tsStart(i), TsEnd(i))
Next
Es gibt keine integrierte "Bereich" -Methode in VBA: Sie müssen ein Array der erforderlichen Größe dimensionieren und es mit einer Schleife füllen. –
'numDis' wird niemals initialisiert. Soll es immer als 'numSub' gedacht sein? – user3598756
@ user3598756 ja, es ist nSub. Ich habe den Code ins Englische übersetzt und vergessen, es zu ändern, haha. Danke! – jf8769