用于将数据从具有多个 sheet 的工作簿复制到另一个具有多个 sheet 的工作簿的宏

Macros for copying data from a workbook with multiple sheet to another workbook with multiple sheet

如果我想从一个 excel 工作簿复制数据,该工作簿的数据在 3 个不同的工作表中,要复制到不同的 excel 工作簿,如何使用 3 个工作表?

如何VBA 编码?

我有2个excel工作簿,分别命名为W1和W2,每个excel工作簿由3张工作簿组成,分别命名为A1、A2、A3和B1、B2、B3。

W1 将是打开的工作簿,W2 将是特定路径中的关闭工作簿。

我需要从

复制选定的数据

W1 A1 到 W2 B1 W1 A2 至 W2 B2 W1 A3 至 W2 B3

所选数据将是单单元格数据(单元格 H5 和 N3)和多单元格数据(单元格 B12 到 Q21)

数据复制粘贴后,需要另存为创建W3(工作簿3)

不清楚是否要在三个工作表上复制完全相同的单元格区域。然而,下面是一些基本的 VBA 对一个工作表执行此操作:

Sub sExportSelectedData()
    On Error GoTo E_Handle
    Dim wbSource As Workbook
    Dim wbDest As Workbook
    Dim wsSource As Worksheet
    Dim wsDest As Worksheet
    Dim strFile As String
    strFile = "C:\test\export.xlsx"
    Set wbSource = ThisWorkbook
    Set wbDest = Workbooks.Open("C:\test\book2.xlsx")
    
    Set wsSource = wbSource.Worksheets("Sheet1")
    Set wsDest = wbDest.Worksheets("Sheet1")
    wsDest.Range("H5") = wsSource.Range("H5")
    wsDest.Range("N3") = wsSource.Range("N3")
    wsSource.Range("B12:Q21").Copy Destination:=wsDest.Range("B12")
    
    If Len(Dir(strFile)) > 0 Then Kill strFile
    wbDest.SaveAs strFile
sExit:
    On Error Resume Next
    Set wsDest = Nothing
    Set wsSource = Nothing
    wbDest.Close Savechanges:=False
    Set wbDest = Nothing
    Set wbSource = Nothing
    Exit Sub
E_Handle:
    MsgBox Err.Description & vbCrLf & vbCrLf & "sExportSelectedData", vbOKOnly + vbCritical, "Error: " & Err.Number
    Resume sExit
End Sub

您可以复制并粘贴设置 source/destination 工作表并复制其他两个工作表的代码,或者您可以创建一个工作表名称数组并循环它。

此致,