簡體   English   中英

需要運行時錯誤“424”對象:Excel VBA

[英]Run-time error '424' Object Required : Excel VBA

我對編碼非常陌生,我試圖將數據從一個工作表復制到特定行上的另一個工作表。

Sub copycolumns()
    Dim lastrow As Long, erow As Long
    lastrow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row '*/error shows here/*
    For i = 2 To lastrow
        Sheet1.Cells(i, 1).Copy
        erow = Sheet2.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
        Sheet1.Paste Destination:=Worksheets("Sheet2").Cells(erow, 1)
        Sheet1.Cells(i, 3).Copy
        Sheet1.Paste Destination:=Worksheets("Sheet2").Cells(erow, 2)
        Sheet1.Cells(i, 6).Copy
        Sheet1.Paste Destination:=Worksheets("Sheet2").Cells(erow, 3)
    Next i
    Application.CutCopyMode = False
    Sheet2.Columns().AutoFit
    Range("A1").Select
End Sub

我在這里缺少什么?

錯誤 424“需要對象”只有一個原因會在該行代碼上彈出。

未指定Option Explicit ,並且未在任何地方聲明Sheet1

查看“Sheet1”模塊 (F4) 的屬性,然后記下(Name)屬性的值:

模塊“Sheet1”的屬性

Name屬性是您在 Excel 中看到的內容。 (Name)屬性在 Excel 中的任何位置都不可見,該值決定了 VBA 自動為您聲明的全局范圍標識符的名稱。

如果沒有工作表的(Name)屬性值為Sheet1則不能執行Sheet1.Cells(...)

但無論如何都要指定Option Explicit 錯誤 424 的原因是Sheet1未聲明,在運行時它是一個默認值Empty的隱式Variant ,它不是一個對象,因此成員調用是非法的 - 只有一個對象可能有Cells成員。

小貼士:給(Name)屬性起一個有意義的名字,例如SummarySheet 然后你可以做SummarySheet.Cells(...)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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