Also ich versuche, ein Array innerhalb einer IF-Anweisung zu deklarieren, die ändern wird, wie groß es abhängig von der Bedingung ist, aber ich erhalte einen doppelten Fehler, wenn ich den Code ausführen.Doppelte Delcaration der Variablen in IF-Anweisung VBA
If ZoneComboBox.Value = "Zone 1" Then
Dim spaces(1 To 5, 1 To 2) As String
spaces(1, 1) = "ROOM 1"
spaces(1, 2) = "JOE"
spaces(2, 1) = "ROOM 2"
spaces(2, 2) = "PAUL"
spaces(3, 1) = "ROOM 3"
spaces(3, 2) = "JOE"
spaces(4, 1) = "ROOM 4"
spaces(4, 2) = "PAUL"
spaces(5, 1) = "ROOM 5"
spaces(5, 2) = "PAUL"
End If
If ZoneComboBox.Value = "Zone 2" Then
Dim spaces(1 To 6, 1 To 2) As String
spaces(1, 1) = "SPACE 1"
spaces(1, 2) = "JOE"
spaces(2, 1) = "SPACE 2"
spaces(2, 2) = "JOE"
spaces(3, 1) = "SPACE 3"
spaces(3, 2) = "JOE"
spaces(4, 1) = "SPACE 4"
spaces(4, 2) = "JOE"
spaces(5, 1) = "SPACE 5"
spaces(5, 2) = "JOE"
spaces(6, 1) = "SPACE 6"
spaces(6, 2) = "JOE"
End if
Es arbeitet, bevor ich die zweite Dimension hinzugefügt hinzuzufügen, die den Raum/Raum besitzt, aber ich sehe keinen Fehler, wie ich dies tue. Danke für jede Hilfe, die ihr zur Verfügung stellen könnt.
Scope funktioniert nicht so in VBA. Ihre Optionen bestehen darin, im zweiten 'If'-Block einen anderen Variablennamen anstelle von' spaces' zu verwenden oder die 'REDIM PRESERVE'-Anweisung zu verwenden, um das vorhandene' spaces'-Array neu zuzuweisen. – dlatikay
'Dim Spaces() als String' vor dem 'ìf'. Und dann innerhalb des 'then' und' else', 'redim spaces (1 bis ..., 1 bis ...)' aber WITOUT bewahren! Der Fehler, den du machst, ist, als ob du versuchst, mir einen Gegenstand zu verkaufen und dann den gleichen Gegenstand, der mir gehört, an eine andere Person zu verkaufen. –