使用特定的单元格值作为下一个操作的地址

我一直在搞混,寻找一段时间,但是我没有足够的能力。

  • 我想select从L7到单元格中的值是'Anchorsec'(也列L)的范围。
  • 你显然可以这样做, EndCell的确包含了AnchorSec的值,但是我如何使用EndCell cell地址呢?

 Dim EndCell As Range Set EndCell = ActiveSheet.Range("L7:L30").Find("AnchorSec", LookIn:=xlValues) ActiveSheet.Range("L7:EndCell.Adress").Copy ActiveSheet.Range("K7:EndCell.Address.Offset(0, -1)").Paste 

Find返回所需单元格的引用,所以使用它

 Dim EndCell As Range Set EndCell = ActiveSheet.Range("L7:L30").Find("AnchorSec", LookIn:=xlValues) If Not EndCell Is Nothing Then ActiveSheet.Range("L7", EndCell).Copy ActiveSheet.Range("K7", EndCell.Offset(0, -1)).Paste Else ' AnchorSec Not Found End If 

不是:对于任何未指定的选项,查找使用上次使用的任何,所以你应该指定所有的选项,以确保你得到你所期望的

 ActiveSheet.Range("L7:L30").Find("AnchorSec", LookIn:=xlValues).Address 

也很好用

 LookAt:=xlWhole 

使用xlFormulas而不是xlValues因为这对隐藏的单元格起作用。

我也简化了复制部分

 Set EndCell = ActiveSheet.Range("L7:L30").Find("AnchorSec", , xlFormulas, xlWhole) If Not EndCell Is Nothing Then ActiveSheet.Range("L7", EndCell).Copy ActiveSheet.Range("K7") Else MsgBox "Cell not found", vbCritical End If 

Find需要9个参数

What,After,LookIn,LookAt,SearchOrder,SearchDirection,MatchCase,MatchByte,SearchFormat

为了收紧对另一个答案的build议,只有其中四个被默认保存

LookIn,LookAt,SearchOrder和MatchByte