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

时间:2016-02-18 08:06:27

标签: excel excel-vba vba

我一直在搞乱和搜索,但是我的能力不足。

  • 我想选择从L7到单元格中的值所在的范围' Anchorsec' (也是L栏)。
  • 您显然可以这样做,EndCell确实包含值 AnchorSec ,但我如何使用EndCell的单元格地址?

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

3 个答案:

答案 0 :(得分:1)

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 返回对所需单元格的引用,因此请使用

{{1}}

不是:对于任何未指定的选项,Find使用上次使用的任何内容,因此您应指定所有选项以确保获得预期

答案 1 :(得分:0)

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

也很好用

LookAt:=xlWhole

答案 2 :(得分:0)

使用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

为了收紧对另一个答案的建议,默认情况下只保存其中四个

  

LookIn,LookAt,SearchOrder和MatchByte