我正在尝试构建一些代码,将名称和电子邮件地址插入到循环中下一行的下一个打开行中。我在Set =电子邮件行数中遇到错误,我不知道为什么。
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
答案 0 :(得分:2)
您声明了Number_Of_Emails As Integer
,但之后尝试将set
改为range
,因此这是一种类型不匹配。你可以简单地做
Number_Of_Emails = Data.Range("L6002").value
编辑:将斯科特霍尔兹曼的评论逐字逐字地贬低
只有对象类型变量才需要设置(因此错误)。一个 范围变量是对象类型。作为数字的整数不是 对象类型。 (字符串也不在对象上)。工作表是一个 对象类型。