0

您好,提前感谢您的帮助!我将在接下来的几行中提出我的问题:

1.我在Sheet1中有一个一百个关键词的列表。

2.对于其中的每一个,我必须找到它,如果它存在于 Sheet2 的列表中。

3.如果不是,则必须进行下一个关键字。

4.如果它存在,它应该复制从找到的单元格到左边三个位置的单元格。

5.并将Sheet1粘贴到关键字的右侧。

Sub Alaba()

Dim x As Object
Dim y As Variant
Dim z As Variant

Sheets("#CoT.military refresh").Activate
Range("c3").Select

Do
ActiveCell.Offset(0, -1).Select

Set x = ActiveCell

Sheets("Copy of CoT HQ").Select
Columns("E:E").Select
Selection.Find(What:=x, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate

Set y = ActiveCell

If Not y Is Nothing Then
y.Offset(0, -3).Copy
Sheets("#CoT.military refresh").Activate
Selection.Find(What:=x, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Offset(0, 1).Select
ActiveCell.Paste
ActiveCell.Offset(1, 0).Activate

End If

Loop Until x = "a"

End Sub

这是我到目前为止提出的代码,但它在这一行给了我一个错误:

ActiveCell.Paste

如果您能帮助我找到解决问题的方法,我将非常高兴。

4

1 回答 1

0

您是否检查过 Selection.Find 是否给您一个错误?在这种情况下,您可以看到http://www.cpearson.com/excel/errorhandling.htm,这是一个很好的页面来解释这一点。

您也可能遇到组合单元格的问题(但我认为这不是您的问题,不是吗?

如果我是你,我不会使用 OffSet,因为我更清楚这一点:

dim row as integer
 row=Selection.Row
row=row-3
Cells(row,5).Select
Selection.Copy
'Column 5 is E

希望它可以帮助你

于 2013-07-19T07:32:28.193 回答