VBA确定地址之前的单元格?
我有这个代码:
localise = Cells.Find("Hello" , lookIn:=xlValues).Address MsgBox localise
msgbox给我$ 10,但是我想在这之前的单元格,我怎么能编程这个VBA?
Offset
的使用会得到你想要的。 在这种情况下:
MsgBox localise.Offset(-1, 0).Address
这会给你find相同的列,但find的项目之前一行。
您还需要使用Set
Set localise = ...
来获取必要的对象引用,而不会生成Object Required
错误。 也build议不要以为你会find你正在寻找的物品,并处理这种情况。 简而言之:
Set localise = Cells.Find("Hello", LookIn:=xlValues) If Not localise Is Nothing Then MsgBox localise.Offset(-1, 0).Address Else MsgBox "Didn't find it" End If
在最后一行开始search,并使用xlnext
作为search方向(开始查看第1行)
误读你的问题,find第一次发生。 仍然会推荐从第1行开始search,而不是假设范围存在 – 你当前的代码是做什么的
Sub FindFirst() Dim Localise As Range Set Localise = Cells.Find("Hello", Cells(Rows.Count, "A"), xlValues, , , xlNext) If Not Localise Is Nothing Then MsgBox Localise.Offset(-1, 0).Address End Sub
使用胶印是一种select:
localise = Cells.Find("Hello", LookIn:=xlValues).Offset(-1, 0).Address
或者如果你刚刚在$ A $ 9之后,并且想要一个较less涉及的方法,那么只需findstring中的第二个$,并将其作为一个值减1。