将动态范围转换为字符串类型

时间:2016-05-18 20:59:47

标签: excel-vba type-conversion vba excel

我有一列字符串类型(电子邮件地址)可能会改变长度,因为人们可以在此列中添加或删除电子邮件地址。 (列的范围是动态的)目前,我的代码采用固定范围并将范围转换为由分号分隔的长字符串。有没有办法可以使用此列中的值获取所有单元格并将范围转换为字符串类型?

我当前的代码

EmailAddresses = Join(Application.Transpose(Range("P2:P12").Value), "; ")

如果我将范围更改为" P:P"我收到一个运行时错误,我记忆错了......因为它用空白单元格创建了一个字符串

1 个答案:

答案 0 :(得分:1)

如果地址不是公式的结果,请尝试一个简单的循环:

Sub dural()
    Dim EmailAddresses As String
    EmailAddresses = ""
    For Each r In Range("P:P").Cells.SpecialCells(xlCellTypeConstants)
        If r.Value <> "" Then
            EmailAddresses = EmailAddresses & ";" & r.Value
        End If
    Next r
    EmailAddresses = Mid(EmailAddresses, 2)
End Sub

如果列中没有 Nulls ,您甚至可以取消对&#34;&#34; 的测试。