2017-01-10 1 views
0

열의 마지막 셀을 선택하고 해당 값을 복사하여 다른 통합 문서에 붙여 넣으려고합니다. 첫 번째 통합 문서에서는 한 공간에 버튼을 만들었습니다. 해당 단추를 클릭하면 사라지고, 다른 통합 문서 (NCR Log)에서 값을 가져 와서 값에 1을 더하고, 단추가 있었던 첫 번째 통합 문서에 붙여 넣기를 원합니다. 이 쉽게 될 것이라고 가정했지만 매크로를 실행할 때 런타임 오류가 424 : 필요한 개체. 여기있는 게 이상 해 보이니? 로그는 Excel의 열과 행 집합입니다 ... 고유 한 것은 없습니다.열의 마지막 셀 선택 - 오류 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

'.copy' 나'.paste'와 같은 명령이며'.Select'를 제거하고 자식을 갖지 않습니다. –

+0

'Range ("I4"). Paste'는 그것을 붙여 넣습니다. 코드가 I4가 붙여 넣기가 필요하다는 것을 코드가 알고 있으므로 셀을 선택하지 않아도됩니다. –

+0

@ Mr.Burns 아니요, 그렇지 않습니다. Range/셀 객체에는 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)를 호출하려고합니다.

이 줄 역시 비슷한 이유로 실패합니다. Copy 방법은 선택적 매개 변수, 우리가 정확히 붙여 넣기가 발생할해야하는 위치 지정하는 데 사용할 수있는 Destination을 가지고

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

참고. 그게 내가 위의 대답에서 한 것입니다.

+1

당신은 나를 때리고 더 나은 일을 했어, 당신은 +1 할 자격이있다. –