我正在从列表框中显示的工作表中获取一些值,就像在屏幕截图(房间)的顶部一样
我正在使用以下代码
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)
是屏幕快照中第一个列表框中的房间号。
完整pastebin:https://pastebin.com/QpTKR4V4