搜索变量并从中复制粘贴偏移单元格

时间:2013-03-01 17:31:46

标签: excel-vba vba excel

嗨, 提前谢谢你的帮助!我将在下一行中介绍我的问题:

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

如果你能帮助我找到问题的解决方案,我会很高兴的。

1 个答案:

答案 0 :(得分: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

希望它可以帮到你