程序持续执行很长时间

时间:2017-07-10 07:58:08

标签: excel vba excel-vba

我有三张Sheets,sheet1,sheet2和sheet3。

我正在尝试复制sheet3中的工作表1,列N和F.

然后,使用此ID,我查看A列并查看它们是否匹配, 如果是,那么我将匹配的ID复制到sheet3。

出于这个原因,我正在使用下面的代码。

代码工作正常至今。但是今天早上我更新了我的sheet2,并且由于某种原因,代码是Keep持续执行了很长时间但仍然无法获得输出,我无法找出原因。

我尝试调试,下面的行突出显示。

  

如果没有,那么

另外,我在工作表中使用了一个按钮并调用了

这样的函数
  

调用thisworkbook.lookup

同样我还有6个其他功能,附在此按钮上。

这是完整的代码。有人可以帮我弄清楚是什么原因。

Sub lookup()
Dim totalrows 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
Sheets("S1").Select
totalrows = ActiveSheet.UsedRange.Rows.Count
Totalcolumns = ActiveSheet.UsedRange.Columns.Count
'TotalRows = 441
'Totalcolumns = 392
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
End Sub

1 个答案:

答案 0 :(得分:0)

问题是由工作表S1的UserdRange超出其真实大小引起的。 问题解决了:

  1. 查找电子表格S1中包含数据的最后一行。
  2. 选择该行下方的单元格。
  3. 按键盘上的control + shift + End键。
  4. 在该范围内单击鼠标右键,然后选择“删除”。
  5. 选择删除整行。
  6. 保存文件