正在从工作簿复制和粘贴(循环错误)

问题描述 投票:0回答:1

我正在尝试遍历excel文件的文件夹(大约6个文件左右),从命名表中复制数据并将值粘贴到主文件中。我试过使用DataBodyRange而不是标准范围,但是将其粘贴到ThisWorkbook(主机将在其中居住)​​时遇到了问题。粘贴目标与源的大小相同,应粘贴到下一个空行,依此类推。我花了两天时间在墙上敲打头,无法解决。任何帮助或见识都将是惊人的。

Sub SalesTrackerCompiler()

Dim Myfile As String, str As String, mydir As String, wb As Workbook

    Set wb = ThisWorkbook
    mydir = "C:\Users\$$$$$$$$$$$$\"
    Myfile = Dir(mydir & "*.xlsm")
    ChDir mydir
    Application.ScreenUpdating = 0
    Dim erow As Long


    Do While Myfile <> ""
    Workbooks.Open (Myfile)
    With Worksheets("Data Input Table")
    Worksheets("data input table").ListObjects("DataInputSource").AutoFilter.ShowAllData
    Set rng = ListObjects.Item(1).DataBodyRange.Select
    rng.Copy wb.Worksheets("regional source data").Cells(Rows.Count, "a").End(xlUp).Offset(1, 0)


    ActiveWorkbook.Close True

    End With
    Myfile = Dir()

    Loop

End Sub
excel vba
1个回答
0
投票

在您知道错误所在的行上添加一个断点,运行代码,当它停止时,使用立即窗口并键入?ListObjects(1).Name,按Enter键,看看是否遇到相同的错误,建议您这样做。

您需要参考特定的工作簿和工作表才能获取ListObject。尝试更改

Workbooks.Open (Myfile)

to

set new_workbook = Workbooks.Open(Myfile)

然后使用(假设ListObject在工作表1中)

Set rng = new_workbook.Worksheets(1).ListObjects(1).DataBodyRange

© www.soinside.com 2019 - 2024. All rights reserved.