首页 > 解决方案 > 无法使用 VBA 代码打开多个工作簿并附加 Excel 工作表中的数据

问题描述

我有一个 Excel 工作表,其中有一列中的 Excel 工作簿列表和另一列中的相应数据。我希望能够打开每个工作簿并仅用相应的数据填充特定列。目前,我的代码打开每个工作簿并在其下方附加其他工作簿的数据。

样本 Excel 表

我的代码:

Sub Workbook_Open()
Dim r1 As Range, r2 As Range, N As Long, r As Range, x As Range

Workbooks.Open "C:\Users\HP\Documents\test\script.xlsx"

For Each r In Range("A1:A3")
    With r

        Workbooks.Open r
        Set Rng = Sheets("Sheet1").Range("B1:B3")
        For Each cell In Rng
        With cell

        Set r2 = Sheets("Sheet1").Range("Y3:Y3")

    Rng.Copy r2
    End With
        Next cell
    End With

Next r

End Sub

您的意见将不胜感激。

标签: excelvbaexcel-formulaworksheet

解决方案


我不太明白您在复制什么,但我假设您要打开主文件 A 列中的每个文件,从该文件中提取一些单元格并将其放在 A 列右侧的单元格中。这会转移几个细胞,所以希望你能解决如何修改你的需求,或者如果没有,就回来。

Sub Workbook_Open()

Dim r1 As Range, rng As Range, N As Long, r As Range, x As Range, wbMaster As Workbook, wb As Workbook

Set wbMaster = Workbooks.Open("C:\Users\HP\Documents\test\script.xlsx")

For Each r In wbMaster.Sheets(1).Range("A1:A3")
    Set wb = Workbooks.Open(r)
    wb.Sheets("Sheet1").Range("B1").value=r.Offset(, 1).Value  'this fills B1 of the workbook opened with B of the master file
    wb.close false
Next r

End Sub

推荐阅读