定义行范围时出错

时间:2017-07-10 12:01:34

标签: excel vba excel-vba

我有三张Sheets,sheet1,sheet2和sheet3。 sheet3通常被视为结果表。

在第一步中,我将sheet1列N复制到sheet3列E.同样将表1的F列复制到sheet3的列H.

复制列后,我想比较E列中sheet3的Id和sheet2中列A的ID。如果匹配,则将其打印在sheet3中,并使用“偏移”功能打印其他相对列“详细信息”。

我更新了sheet2,新的工作表数据和代码突然停止执行。没有错误发生。

该程序只是继续执行,并且不会停止。当我调试时,我发现下面的行突出显示。

  

如果没有,那么

附加信息:我在sheet1中有118行,前三行合并并有Buttons。数据从row5开始。 我在sheet2中有990行,数据从row5开始,类似于sheet1,也有Buttons。 有人可以帮我纠正这个问题。我已经发布了这个问题,但没有找到任何积极的回应。我需要论坛成员帮我解决这个问题。

Sub lookup()
Dim lrow As Long
Dim Totalcolumns As Long
Dim rng As Range
Dim rng1 As Range
Dim rng2 As Range
Dim i As Long
'Copy lookup values from sheet1 to sheet3
ThisWorkbook.Sheets("S1").Select
totalrows = ActiveSheet.UsedRange.Rows.Count

Range("N5:N" & totalrows).Copy Destination:=Sheets("S3").Range("E5")
Range("F5:F" & totalrows).Copy Destination:=Sheets("s3").Range("H5")
'Go to the destination sheet
Sheets("s3").Select
For i = 5 To totalrows
'Search for the value on sheet2
Set rng = Sheets("s2").UsedRange.Find(Cells(i, 5).Value)
'If it is found put its value on the destination sheet
If Not rng Is Nothing Then
Cells(i, 6).Value = rng.Value
Cells(i, 1).Value = rng.Offset(0, 1).Value
Cells(i, 2).Value = rng.Offset(0, 2).Value
Cells(i, 3).Value = rng.Offset(0, 3).Value
Cells(i, 4).Value = rng.Offset(0, 9).Value
Cells(i, 9).Value = rng.Offset(0, 10).Value
Cells(i, 12).Value = rng.Offset(0, 6).Value
Cells(i, 13).Value = rng.Offset(0, 5).Value
Cells(i, 14).Value = rng.Offset(0, 8).Value
End If
Next i
End Sub

1 个答案:

答案 0 :(得分:1)

这样的东西?

lLastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row