Excel 将数据复制到其他工作簿中的不同范围

Excel 将数据复制到其他工作簿中的不同范围,excel,vba,Excel,Vba,下面的代码将所有工作表内容从源工作簿复制到目标工作簿。工作表名称完全相同。代码以完全相同的顺序/范围(“A2:A700,&“D2:D700,&“C2:C700”)将数据从源复制到目标工作簿中。但是,我希望上述范围内的源数据进入目标工作簿上的不同范围(I3、k3和AC3)。感谢您的帮助 Option Explicit Sub seunweb() 'this macro copies from one workbook to another Dim wbSource As

下面的代码将所有工作表内容从源工作簿复制到目标工作簿。工作表名称完全相同。代码以完全相同的顺序/范围(“A2:A700,&“D2:D700,&“C2:C700”)将数据从源复制到目标工作簿中。但是,我希望上述范围内的源数据进入目标工作簿上的不同范围(I3、k3和AC3)。感谢您的帮助

Option Explicit

    Sub seunweb()
    'this macro copies from one workbook to another

    Dim wbSource As Workbook, wbDestination As Workbook
    Dim ws As Worksheet, rng As Range
    Dim NextRow As Long, LastRow As Long

    Application.ScreenUpdating = False

        Set wbSource = Workbooks.Open("D:\test.xls")
        Set wbDestination = ThisWorkbook
    For Each ws In wbSource.Sheets

    For Each rng In ws.Range("A2:A700," & _
                                     "D2:D700," & _
                                     "C2:C700").Areas
                wbDestination.Sheets(ws.Name).Range(rng.Address).Value = rng.Value

            Next rng

        Next ws

        wbSource.Close SaveChanges:=False

        Application.ScreenUpdating = True

    End Sub

不要使用for循环,而是使用

Set rng = ws.Range("A2:A700")
wbDestination.Sheets(ws.Name).Range("I3").Resize(rng.Rows.Count, rng.Columns.Count).Value = rng.Value

Set rng = ws.Range("D2:D700")
wbDestination.Sheets(ws.Name).Range("K3").Resize(rng.Rows.Count, rng.Columns.Count).Value = rng.Value

' continue this this for each source range