0

こんにちは、よろしくお願いします!私は次の行で私の問題を提示します:

1.Sheet1に100個のキーワードのリストがあります。

2. Sheet2のリストにある場合は、それぞれについて見つける必要があります。

3.そうでない場合は、次のキーワードに進む必要があります。

4.存在する場合は、見つかったセルから3つ左の位置にあるセルをコピーする必要があります。

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 に答える