嗨, 提前谢谢你的帮助!我将在下一行中介绍我的问题:
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
如果你能帮助我找到问题的解决方案,我会很高兴的。
答案 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
希望它可以帮到你