[英]Selecting last cell in Column - Error 424?
我試圖選擇列中的最后一個單元格,復制它的值,然后將其粘貼到另一個工作簿中。 在第一個工作簿中,我在一個空格中創建了一個按鈕。 單擊該按鈕后,我希望它消失,從另一個工作簿(NCR日志)中獲取值,將值添加1,然后將其粘貼到該按鈕以前所在的第一個工作簿中。 我以為這很容易,但是當我運行宏時,出現運行時錯誤424:Object Required。 這里有什么奇怪的地方嗎? 日志只是excel中的一組列和行。
供參考: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
任何幫助將不勝感激!
應該這樣做:
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
在您的原始代碼中,這將失敗:
ActiveSheet.Range("B" & Cells.Rows.Count).End(xlUp).Select.Copy
由於Select
是不返回對象的方法,因此會出現424(必需的對象)錯誤:您正試圖從非對象調用方法( .Copy
)。
由於類似原因,該行也會失敗。
Range("I4").Select.Paste.Select
需要注意的是Copy
方法有一個可選參數, Destination
,我們可以使用指定的確切位置粘貼應導致。 這就是我在上面的答案中所做的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.