单步执行代码时出现运行时91错误。
代码的重点是使用ActiveCell(将在H列中)匹配D列中的值,然后向右看4个单元格并复制该行中的下222个单元格。目的地是ActiveCell右侧的一个单元格。然后,我想清除单元格。
Sub MirrorUsers()
Dim WS1 As Worksheet
Dim Rng1 As Range
Dim Rng2 As Range
Application.ScreenUpdating = False
Set WS1 = ActiveSheet
Set Rng1 = WS1.Range(WS1.Range("H2"), WS1.Range("H" & Rows.Count).End(xlUp))
Set Rng2 = WS1.Range(WS1.Range("D2"), WS1.Range("D" & Rows.Count).End(xlUp))
Rng2.Find(What:=ActiveCell).Offset(, 4).Resize(, 222).Copy
Destination:=ActiveCell.Offset(, 1)
Rng1.Clear
End Sub
我希望值能够反映特定单元格中的其他行值。我目前收到运行时错误91。
答案 0 :(得分:0)
错误91表示您的Find
找不到任何内容。将您的代码更改为此
Set rFound = Rng2.Find(What:=ActiveCell)
Debug.Assert Not rFound Is Nothing
rFound.Offset(, 4).Resize(, 222).Copy _
Destination:=ActiveCell.Offset(, 1)
,您会看到rFound
是Nothing
。错误是您正在尝试在不存在的范围内使用Offset
属性。您必须弄清楚为什么找不到它,但是这里有一些尝试:
首先,在代码中使用Find
时,请包含尽可能多的参数。如果在“ UI查找”对话框中更改参数,则该参数将保留。因此,您可以在不需要时搜索整个单元格内容。或者,当您需要值时,您可能会在公式中查看。
确保没有尾随空格或其他不可打印的字符妨碍匹配。
确保数字是数字,文本是文本,并且不要混用仅看起来像是数字的文本。