我的目的是:在当前打开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】文件,复制就成功了。
不知道你是否一行一行的读过你写的代码,你读了会发现什么嘛,我是这么读的:
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 '关闭新工作簿追问
文件是建好了,但内容没有复制过去,请你帮忙写一个完整的代码,谢谢!
追答用我的代码不是不可能的,因为我根本没有建立文件的语句,只有复制语句,请粘贴你的代码,我给你修改。
本回答被网友采纳