Set =

时间:2016-05-26 21:07:04

标签: excel vba excel-vba

我正在尝试构建一些代码,将名称和电子邮件地址插入到循环中下一行的下一个打开行中。我在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

1 个答案:

答案 0 :(得分:2)

您声明了Number_Of_Emails As Integer,但之后尝试将set改为range,因此这是一种类型不匹配。你可以简单地做

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

编辑:将斯科特霍尔兹曼的评论逐字逐字地贬低

  

只有对象类型变量才需要设置(因此错误)。一个   范围变量是对象类型。作为数字的整数不是   对象类型。 (字符串也不在对象上)。工作表是一个   对象类型。