我已经创建了以下代码,在逐步运行时(使用F8键)可以很好地实现它,但是当我运行整个宏时它会失败。
此代码的目的是从Sheet 2中的单元格中搜索文本,一旦找到它,它就会将Sheet 1中的相邻文本复制到工作表2上(在代码中描述的以下事项中)。
当我的意思是代码失败时,我的意思是代码似乎进入了一个继续循环(在LOOP 1中)。然而,当我在chucks中运行代码时(使用F8),它似乎运行得很好(我说因为我解析的数据相当大而且需要很长时间(~2小时)才能显示手动遍历代码所能的每个可能的循环。
对于为什么会发生这种情况的任何建议/建议将不胜感激。
Public Sub FINDthatLINK2()
'x moves up and down
'y moves left and right
x1 = 1 'Defines variable x in Sheet 1
y1 = 1 'Defines variable y in Sheet 1
x2 = 1 'Defines variable x in Sheet 2
y2 = 1 'Defines variable y in Sheet 2
'=================================LOOP 2===================================
Do Until Sheets(2).Cells(x2, 2) = ""
'=================================LOOP 1===================================
'If there is space on the next column, add data. Otherwise, create a new
'row and copy all of the information into the new row + new data
Do Until Sheets(1).Cells(x1, y1) = ""
If Sheets(1).Cells(x1, y1) = Sheets(2).Cells(x2, y2 + 1) Then
If Sheets(2).Cells(x2, y2 + 2) = "" Then
Sheets(2).Cells(x2, y2 + 2) = Sheets(1).Cells(x1, y1 + 1)
Else
Sheets(2).Cells(x2 + 1, y2).EntireRow.Insert
Sheets(2).Cells(x2 + 1, y2) = Sheets(2).Cells(x2, y2)
Sheets(2).Cells(x2 + 1, y2 + 1) = Sheets(2).Cells(x2, y2 + 1)
Sheets(2).Cells(x2 + 1, y2 + 2) = Sheets(1).Cells(x1, y1 + 1)
结束如果
End If
x1 = x1 + 1
Loop
'==================================LOOP 1==================================
x2 = x2 + 1
x1 = 1
Loop
'=============================LOOP 2===================================
End Sub