[英]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)
屬性的值:
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.