有时候,我们可能想复制工作表,保留一份工作表的副本,以免误操作打乱工作表后无法恢复。有时候,我们也可能想移动工作表,调整工作表顺序,将工作表重新排列,以方便工作表的布置。本文介绍在VBA中实现这两种操作。
在工作簿底部的工作表标签中单击右键,选择菜单中的“移动或复制工作表”,如下图1所示。
图1
在出现的对话框中选中“建立副本”,如下图2所示。
图2
单击“确定”按钮,复制得到工作表Sheet1的一份副本,Excel将其自动命名为工作表Sheet1(2),如下图3所示。
图3
技巧:选择要复制的工作表标签后,按住Ctrl键,拖动工作表即可完成复制工作表操作。
使用宏录制器录制上述操作的代码为:
Sub Macro1()
'
' Macro1 Macro
'由完美Excel创建
'
Sheets('Sheet1').Select
Sheets('Sheet1').Copy Before:=Sheets(1)
End Sub
Copy方法
工作表对象的Copy方法复制指定工作表到工作簿中指定的位置。其语法为:
工作表对象.Copy(Before,After)
说明:参数Before和参数After用于指定工作表,复制的工作表将放置在该工作表之前或者之后。二者只能同时选一。
如果没有指定参数,Excel将创建一个包含所复制工作表的新工作簿。
下面接着来看移动工作表的操作。
在上文图2所示的对话框中,我们不选取“建立副本”复选框,这样将会移动所选择的工作表在对话框中指定的某工作表之前。或者在Excel工作簿中,选择要移动的工作表标签后,直接拖动到想要放置的位置。如下图4所示,将工作表Sheet1(2)移动至工作表Sheet3之前。
图4
所录制的代码如下:
Sub Macro2()
'
' Macro2 Macro
' 由完美Excel创建
'
Sheets('Sheet1(2)').Select
Sheets('Sheet1(2)').Move After:=Sheets(3)
End Sub
Move方法
工作表对象的Move方法移动指定工作表到工作簿中指定的位置。其语法为:
工作表对象.Move(Before,After)
说明:参数Before和参数After用于指定工作表,复制的工作表将放置在该工作表之前或者之后。二者只能同时选一。
如果没有指定参数,Excel将创建一个包含所复制工作表的新工作簿。
对比一下,Copy方法与Move方法似乎完全相同,只是Copy方法创建了工作表的一份副本,而Move方法只是移动了工作表的位置。
下面的语句将工作簿中第3个工作表放置到一个新工作簿中:
Worksheets(3).Copy
或者:
Worksheets(3).Move
示例1:将工作表移动到最后
下面的代码将名为“完美Excel”的工作表移动到工作簿工作表的最后。
Sub MoveWorksheets()
Worksheets('完美Excel').Move_
After:=Worksheets(Worksheets.Count)
End Sub
本文属原创文章,转载请联系我(xhdsxfjy@163.com)或者注明出处。
欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。