为简单起见,我想说我有以下数据: - A列包含飞机上可用的座位列表(未占用的座位) 图1A,1B,1C,1D,1E,1F,2A,2B,2C等
当一个可用座位分配给乘客时,我想找到该座位并将其从列表中删除。
我的代码适用于不是A列中的第一个座位的每个座位,让我们说乘客想要座位1A,即我是小区(1,1)或范围(“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
答案 0 :(得分:2)
“我在这里做错了什么?”
您没有使用Option Explicit
,因此代码质量在不能编译的级别上变低:
Dim rng, As Range
- 这应该是编译错误,不需要逗号
With sht.rng
- 编译错误
Set where = .Find(what:=seat, LookIn:=xlValues)
- 什么是where
- 编译错误
建议 - 在模块顶部写Option Explicit
,然后选择“Debug> Compile”并查看您获得的错误。尝试使用它们,直到你能够编译。