簡體   English   中英

選擇列中的最后一個單元格-錯誤424?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM