Object = Set =中所需的错误

我正在尝试构build一些代码,将名称和电子邮件地址插入到循环中下一行的下一个打开的行中。 我收到Set = Number of Emails行中的错误,我不知道为什么。

Sub Email_Copy() Dim Data As Worksheet Set Data = ActiveWorkbook.Sheets("Data") Dim Email_Database As Worksheet Set Email_Database = ActiveWorkbook.Sheets("Email_Database") Dim Number_Of_Emails As Integer Set Number_Of_Emails = Data.Range("L6002") Dim Total_Emails As Long Set Total_Emails = Email_Database.Range("D2") Dim X As Long For X = 1 To Number_Of_Emails Set Email_Database.Range("B3").Offset(Total_Emails, 0) = Data.Range("D3").Offset(Number_Of_Emails, 0) End Sub 

您将Number_Of_Emails As Integer声明Number_Of_Emails As Integer但后来试图将其set为一个range所以它是一个types不匹配。 你可以简单的做

 Number_Of_Emails = Data.Range("L6002").value 

编辑:斯科特·霍尔茨曼的评论逐字

只有对象typesvariables(因此错误)才需要设置。 Rangevariables是一个对象types。 一个整数是一个数字,不是一个对象types。 (string不在对象上)。 工作表是一个对象types。