-1

我有一个问题,vba 中有一个很好的功能可以将特定列表复制到另一张表:

Sheets("Data").ListObjects("mail_list").DataBodyRange.Copy
Sheets("Email").Range("B2").PasteSpecial xlPasteValues

我想使用特定列表取决于单元格中的文本,如下所示:

Sub make_email()
Dim mail_list, subject As String
Dim i As Integer
i = 2
subject = Sheets("Form").Cells(7, 2).Text
Do While Sheets("Data").Cells(i, 4).Text <> ""
    If subject = Sheets("Data").Cells(i, "AW") Then
        mail_list = Cstr(Sheets("Data").Cells(i, "AW"))
        Exit Do
    End If
    i = i + 1
Loop
Sheets("Data").ListObjects(mail_list).DataBodyRange.Copy
Sheets("Email").Range("B2").PasteSpecial xlPasteValues
End Sub

我认为 ListObjects 需要字符串来获取特定列表,但不,程序返回错误超出范围。如何通过 ListObjects 查看特定名称(如 .ListObjects(mail_list).DataBodyRange.Copy)并使其正常工作?

4

1 回答 1

-1

我想

Dim mail_list, subject As String 
=
Dim mail_list as string
Dim subject as string

... 那好吧...

但无论如何,我将我的命名列表更改为表格类型列表,并且此代码正在运行。但是我有很多已定义的列表(我的意思是,名称管理器中的另一种类型 - 很抱歉这种解释,但我不知道这个列表类型是如何在英文版的 excel 中命名的......命名范围?)我想使用这个类型。所以问题是如何将命名范围复制到另一张表...

于 2015-07-20T16:05:00.380 回答