Я получаю некоторые значения из листа, который я отображаю в списке, как вы можете в верхней части скриншота (комнаты)
![enter image description here](https://i.stack.imgur.com/zonll.png)
Я использую следующий код
ElseIf Left(sh.Cells(r, 8), 1) = "Y" Then ' <<< display all rooms that are working
.AddItem
.List(lC, 0) = sh.Cells(r, 1)
.List(lC, 1) = sh.Cells(r, 2)
.List(lC, 2) = sh.Cells(r, 3)
.List(lC, 3) = sh.Cells(r, 4)
.List(lC, 4) = sh.Cells(r, 5)
.List(lC, 5) = sh.Cells(r, 6)
.List(lC, 6) = sh.Cells(r, 7)
.List(lC, 7) = sh.Cells(r, 8)
lC = lC + 1
End Select
End If
Однако я использую другой фрагмент кода, который возвращает комнаты, которые уже используются (в нижней части скриншота), в поле со списком.
Я пытаюсь исключить эти номера (4,7,6,2,1) из комнат в верхнем списке (комнаты)
Моя идея заключалась в том, чтобы поместить их в переменную с кавычками и запятыми, например,
roomsInUse = roomsInUse & Chr(34) & sh1.Cells(row, 23) & Chr(34) & ", "
затем удалите запятую
roomsinuseformatted = Left(roomsInUse, Len(roomsInUse) - 2)
Затем используйте регистр в моем коде выше, чтобы исключить показ номеров этих номеров, например,
ElseIf Left(sh.Cells(r, 8), 1) = "Y" Then ' <<< display all rooms that are working
Select Case sh.Cells(r, 1)
Case roomsinuseformatted
Me.lstRooms.AddItem "No Interviews"
MsgBox ("test")
Case Else
'MsgBox (UsedRooms)
.AddItem
.List(lC, 0) = sh.Cells(r, 1)
.List(lC, 1) = sh.Cells(r, 2)
.List(lC, 2) = sh.Cells(r, 3)
.List(lC, 3) = sh.Cells(r, 4)
.List(lC, 4) = sh.Cells(r, 5)
.List(lC, 5) = sh.Cells(r, 6)
.List(lC, 6) = sh.Cells(r, 7)
.List(lC, 7) = sh.Cells(r, 8)
lC = lC + 1
End Select
End If
... но это не работает, я знаю, это выглядит неряшливо, и я уверен, что есть лучший способ сделать это - но не был уверен?
P.S. Select Case sh.Cells(r, 1)
- номер комнаты из первого списка на скриншоте.
полная пастина: https://pastebin.com/QpTKR4V4