【发布时间】:2018-02-25 04:25:56
【问题描述】:
为简单起见,假设我有以下数据: - A 列包含飞机上可用座位的列表(未占用的座位) 1A,1B,1C,1D,1E,1F,2A,2B,2C等
当一个可用座位分配给乘客时,我想找到那个座位并将其从列表中删除。
我的代码适用于不是 A 列中的第一个座位的每个座位,假设乘客想要座位 1A,即 Cell(1,1) 或 Range("A1") 当我使用 find.range 我得到第 2 行,因此它继续可供其他乘客使用,而实际上它不应该。
我在这里做错了什么?
Private Sub RemoveFromListSeatAllocated(seat As String)
Dim sht As Worksheet
Dim rng, As Range
Set sht = Sheets("This sheet")
Set rng = Range("A1:A192")
'FIND SEAT IN LIST OF SEATS AVAILABLE
With sht.rng
Set where = .Find(what:=seat, LookIn:=xlValues)
End With
Set rng = Range("A" & where.Row)
'DELETE SEAT FOUND AND SHIFT UP
sht.rng.Delete Shift:=xlUp
End Sub
【问题讨论】:
-
好吧,一个愚蠢的解决方法是让我的 seat_list_data 从单元格 A2 而不是 A1 开始,所以我的问题在这里解决了,但是.. 这让我很难受!我想了解为什么它找不到放在第一行的值,以及是否可以用“FIND”对其进行排序以备将来使用。