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

2024年12月01日 13:03
有2个网友回答
网友(1):

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

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

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

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

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

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

网友(2):

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

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 '关闭新工作簿