VBA复制一个SHEET到另一个文件中的代码

我的目的是:在当前打开EXCEL文件同位置建立一个新的EXCEL文件,命名为“时间+备份数据”,如:2014815备份数据,同时再将当前打开的EXCEL文件sheet1复制到刚才新建文件的sheet中,我写的代码是:
Private Sub CommandButton9_Click()
Dim i As String, j As String, k As String, yy As Integer, mm As Integer, dd As Integer
i = ActiveWorkbook.Path
j = "备份数据.xlsx"
yy = Year(Now())
mm = Month(Now())
dd = Day(Now())
Workbooks.Add
k = yy & mm & dd & j
ActiveWorkbook.SaveAs Filename:=i & k

Workbooks("项目情况一览表.xls").Sheets("sheet1").Cells.Copy ThisWorkbook.Sheets("sheet2").Range("a1")

End Sub
运行时,提示有问题,请高人指点一下是错在那里了!谢谢!

1、在工作表中,点击菜单栏【开发工具】,在其工具栏里,点击【visual basic】,进入VBA界面。

2、在VBA界面,点击菜单栏【插入】,在其下拉菜单中,点击【模块】。

3、会弹出代码编辑窗口。

4、在代码编辑窗口输入一下代码。Sub 复制文件()FileCopy "f:\456.xlsx", "e:\963.xlsx"End Sub。

5、在VBA界面,点击工具栏里的【运行】按钮。

6、会发现E盘的目录下,出现了【963.xlsx】文件,复制就成功了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-26

不知道你是否一行一行的读过你写的代码,你读了会发现什么嘛,我是这么读的:

Private Sub CommandButton9_Click()
     Dim i As String, j As String, k As String, yy As Integer, mm As Integer, dd As Integer
     i = ActiveWorkbook.Path
     j = "备份数据.xlsx"
        yy = Year(Now())
        mm = Month(Now())
        dd = Day(Now())
     Workbooks.Add    '1.添加工作簿
     k = yy & mm & dd & j
     ActiveWorkbook.SaveAs Filename:=i & k    '2.新工作簿另存为指定名字
     
     Workbooks("项目情况一览表.xls").Sheets("sheet1").Cells.Copy ThisWorkbook.Sheets("sheet2").Range("a1")    '3.拷贝一些数据到一个工作簿中

End Sub

看了我的注释1、2、3,我就觉得逻辑不对,至少应该拷贝过去了再保持,另外还有细节问题,ThisWorkbook表示写有宏代码的工作簿,肯定不是你新建的。


我觉得逻辑应该这么做:把指定工作表复制到新工作簿,然后另存为保存新工作薄,最后关闭新工作簿,就三句:

Sheets("Sheet1").Copy '把宏所在工作簿的Sheet1表复制到新工作簿中
ActiveWorkbook.SaveAs Filename:= "..."'保存新工作簿
'ActiveWorkbook.Close '关闭新工作簿

追问

文件是建好了,但内容没有复制过去,请你帮忙写一个完整的代码,谢谢!

追答

用我的代码不是不可能的,因为我根本没有建立文件的语句,只有复制语句,请粘贴你的代码,我给你修改。

本回答被网友采纳