Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 使用find.range获取列中的第一行_Vba_Excel - Fatal编程技术网

Vba 使用find.range获取列中的第一行

Vba 使用find.range获取列中的第一行,vba,excel,Vba,Excel,为了简单起见,假设我有以下数据: -A列包含飞机上可用座位的列表(未占用的座位) 1A、1B、1C、1D、1E、1F、2A、2B、2C等 当一个座位分配给一位乘客时,我想找到那个座位并将其从列表中删除 我的代码适用于不是A列中第一个座位的每个座位,比如说,当我使用find.Range时,乘客希望座位1A是单元格(1,1)或范围(“A1”),我得到第2行,因此它继续适用于其他乘客,而事实上不应该 我做错了什么 Private Sub RemoveFromListSeatAllocated(seat

为了简单起见,假设我有以下数据: -A列包含飞机上可用座位的列表(未占用的座位) 1A、1B、1C、1D、1E、1F、2A、2B、2C等

当一个座位分配给一位乘客时,我想找到那个座位并将其从列表中删除

我的代码适用于不是A列中第一个座位的每个座位,比如说,当我使用find.Range时,乘客希望座位1A是单元格(1,1)或范围(“A1”),我得到第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
“我在这里做错了什么?” 您没有使用
选项Explicit
,因此代码质量在未编译的级别上会降低:

Dim rng,As Range
-这应该是一个编译错误,不需要逗号

带有sht.rng的
-编译错误

设置where=.Find(what:=seat,LookIn:=xlValues)
-what is
where
-编译错误


建议-在模块顶部写入
选项Explicit
,然后选择“Debug>Compile”,查看您收到的错误。试着处理它们,直到您能够编译。

“我在这里做错了什么?” 您没有使用
选项Explicit
,因此代码质量在未编译的级别上会降低:

Dim rng,As Range
-这应该是一个编译错误,不需要逗号

带有sht.rng的
-编译错误

设置where=.Find(what:=seat,LookIn:=xlValues)
-what is
where
-编译错误



建议-在模块顶部写入
选项Explicit
,然后选择“Debug>Compile”,查看您收到的错误。试着处理它们,直到你能够编译。

好吧,一个愚蠢的解决办法是简单地让我的座位列表数据从单元格A2开始,而不是从单元格A1开始,所以我的问题解决了,但是。。这让我很烦!我想了解为什么它找不到放在第一行的值,以及是否有可能用“查找”对其进行排序以供将来使用。好吧,一个愚蠢的解决方法是简单地让我的座位列表数据从单元格A2开始,而不是从单元格A1开始,所以我的问题在这里得到了解决,但是。。这让我很烦!我想了解为什么它找不到放在第一行的值,以及是否有可能用“find”对其进行排序以供将来使用。