用于将数据从具有多个 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 工作表并复制其他两个工作表的代码,或者您可以创建一个工作表名称数组并循环它。
此致,
如果我想从一个 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 工作表并复制其他两个工作表的代码,或者您可以创建一个工作表名称数组并循环它。
此致,