2017-01-10 10 views
0

列の最後のセルを選択しようとしていて、その値をコピーして別のブックに貼り付けようとしています。最初のワークブックでは、あるスペースにボタンを作成しました。そのボタンをクリックすると、それを消して他のブック(NCRログ)から値を取り出し、値に1を加えて、ボタンを使用した最初のワークブックに貼り付けます。私はこれが簡単になると思っていたが、マクロを実行すると実行時エラー424:Object Requiredが発生する。ここの何かが奇妙に見える?ログは、Excelの列と行のセットに過ぎません。Column - Error 424の最後のセルを選択していますか?

参考:NCRログは、値を取得しようとしているブックです。 NCRDONEは、私が価値を置こうとしているワークブックです。ログの列Bは、最後のセルを取得する場所です。 I4は値がNCRDONEになるようにしたいセルです。

Sub tryingtoaDD() 

With ActiveSheet 
For Each Sh In .Shapes 
    If Not Application.Intersect(Sh.TopLeftCell, .Range("H3:J5")) Is Nothing Then 
     Sh.Delete 
    End If 
Next Sh 
End With 

ScreenUpdating = False 

Workbooks.Open ("R:\Quality\NCR's\NCR Log\NCR Log.xlsm") 

ActiveSheet.Range("B" & Cells.Rows.Count).End(xlUp).Select.Copy 

Workbooks.Open ("R:\Quality\NCR's\NCR Log\NCRDONE.xlsm") 

Range("I4").Select.Paste.Select 


ActiveCell.Value = ActiveCell.Value + 1 




ScreenUpdating = True 
End Sub 

ご協力いただければ幸いです。

+3

'.Select'は' .copy'や '.paste'のようなコマンドであり、子はありません。 –

+0

'Range(" I4 ")。Paste'はそれを貼り付けます。あなたは、I4が貼り付けが必要な場所であることをコードが知っているので、セルを選択する必要はありません。 –

+0

@ Mr.Burnsいいえ、それはありません。範囲/セルオブジェクトにPasteメソッドがありません。 –

答えて

2

これはそれを行う必要があります。

Sub tryingtoaDD() 

Dim WBLog as Workbook 
Dim WBDone as Workbook 

With ActiveSheet 
For Each Sh In .Shapes 
    If Not Application.Intersect(Sh.TopLeftCell, .Range("H3:J5")) Is Nothing Then 
     Sh.Delete 
    End If 
Next Sh 
End With 

ScreenUpdating = False 

Set WBLog = Workbooks.Open("R:\Quality\NCR's\NCR Log\NCR Log.xlsm") 
Set WBDone = Workbooks.Open("R:\Quality\NCR's\NCR Log\NCRDONE.xlsm") 
WBLog.ActiveSheet.Range("B" & Cells.Rows.Count).End(xlUp).Copy _ 
    Destination:=WBDone.ActiveSheet.Range("I4") 

ActiveCell.Value = ActiveCell.Value + 1 

ScreenUpdating = True 
End Sub 

をあなたの元のコードでは、これは失敗します。したがって、424ではないリターンオブジェクトを行う方法である

ActiveSheet.Range("B" & Cells.Rows.Count).End(xlUp).Select.Copy 

Selectので(Object Required)error:非オブジェクトからメソッド(.Copy)を呼び出そうとしています。

この行も同様の理由で失敗します。

Range("I4").Select.Paste.Select 

Copy方法は、我々は正確にペーストが生じるはずである場所を指定するために使用できるオプションのパラメータ、Destinationを持っていることに注意してください。それは私が上記の答えで行ったことです。

+1

あなたはそれに私を打ち負かし、より良い仕事をしました。 –

関連する問題