学习一些VBA。到目前为止,我已经构建了这段代码,它应该允许我(虽然它还没有)做以下事情:
- 获取
"M" & i
单元格中的数字(在第一次迭代中是 M5)。 - 在 A 列中找到该数字。
- 一旦找到它,将值设置
PutHereIfFound
为与 F6 的值相同(因此偏移)。 - 如果找到一个数字,则增加 i 以便循环继续搜索 M6、M7、...,直到单元格 M20。
它返回 a Run-Time Error 91
,它代表Object Variable or With Variable not set
。当我调试时,它指向该Set PuthereIfFound
行。
这个错误的原因是什么?
Sub FindThis()
Dim FindThis As Range
Dim PutHereIfFound As Range
Dim i As Integer
Dim f As Integer
i = 5
f = 5
Do
Set FindThis = ActiveSheet.Range("M" & i)
Set PutHereIfFound = ActiveSheet.Range("N" & i)
With ActiveSheet.Range("A:A")
Set PutHereIfFound = .Find(What:=FindThis, _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False).Offset(0, 5)
If Not PutHereIfFound Is Nothing Then
i = i + 1
Else
i = i
End If
End With
Loop While i <= 20
End Sub