我有一个包含4个工作表的工作簿("Initial Workbook") .
我需要将所有四个工作表复制到另一个工作簿("New Workbook") .
我有以下代码,允许我从新工作簿导航到初始工作簿,然后在一个工作表上复制特定范围 . 我想修改它以允许我选择并复制原始工作表上的所有四个工作表 .
我们非常感谢您提供的任何帮助:
Private Sub CommandButton1_Click()
Dim wkbCrntWorkBook As Workbook
Dim wkbSourceBook As Workbook
Dim rngSourceRange As Range
Dim rngDestination As Range
Set wkbCrntWorkBook = ActiveWorkbook
With Application.FileDialog(msoFileDialogOpen)
.Filters.Clear
.Filters.Add "Excel 2002-03", "*.xls", 1
.Filters.Add "Excel 2007", "*.xlsx; *.xlsm; *.xlsa", 2
.AllowMultiSelect = False
.Show
If .SelectedItems.Count > 0 Then
Workbooks.Open .SelectedItems(1)
Set wkbSourceBook = ActiveWorkbook
Set rngSourceRange = Application.InputBox(prompt:="Select source range", Title:="Source Range", Default:="$A:$CS", Type:=8)
wkbCrntWorkBook.Activate
Set rngDestination = Application.InputBox(prompt:="Select destination cell", Title:="Select Destination", Default:="A1", Type:=8)
rngSourceRange.Copy rngDestination
rngDestination.CurrentRegion.EntireColumn.AutoFit
wkbSourceBook.Close False
End If
End With
End Sub
3 回答
奇迹般有效:
(来源:http://www.mrexcel.com/forum/excel-questions/404450-visual-basic-applications-copy-active-workbook-new-workbook.html)
此重新编写的代码应复制您的工作表:
只需根据您的需要更换工作表名称 .
(PS:你可以自己找到这些命令,如果你只是记录一个宏,你将工作表复制到另一个工作簿 - 然后查看生成的代码!;-))
我知道这是一个旧帖子,但现有的答案只复制表格(不包括查询等),并且效率非常低 . 以下代码对我来说就像一个魅力:
要使用,只需将其称为如下:
代码在临时文件夹中保存工作簿的临时副本,使用临时工作簿作为模板创建新工作簿,然后删除临时工作簿 .