抖音点赞粉丝推广运营虚拟服务平台 - 亿抖网欧梦公司

抖音粉丝点赞服务
打通抖音运营之路

vba复制工作表(vba按条件提取行数据)

VBA中工作表的表达方式有多种,以下简介几种。

一、语法:Worksheets(“工作表名”),Sheets(“工作表名”);表示某一个具体的工作表。Worksheets与sheets的区别:Worksheets集合仅代表当前工作簿中的所有工作表,Sheets集合代表当前工作簿中的所有工作表,包括图表工作表、对话框工作表和宏表。

二、Worksheets(N) ,Sheets(N);N为数字,表示第N个工作表。顺序就是在工作簿中从左往右的顺序。

这里我看到有许多教材说SheetN表示第N个工作表,这个说法有很大问题。SheetN指代的是工作表的“标签名”。何为标签名?打开VBA编写窗口,左侧“工程”窗口显示的sheet1,不是工作簿中显示在下方的工作表名称sheet1;它们可能相同,但意思相差甚大。

如果没有左侧“工程”窗口,请在“视图”中点击“工程资源管理器”

Sheets(N)与SheetN的区别,见下图。

 

Sheets(2)是从左往右数第2 个工作表,表名”Sheet3“,标签名也是Sheet3;Sheet2却是表名为“秒表计时”的工作表,表顺序排在第5。工作表拖动位置就会造成此种情况。

SheetN 还可能不存在。如下图:

 

Sheet3这个“标签名”的工作表就不存在。删除过工作表就会产生这种现象。所以,要指代第N个工作表,最好是用Sheets(N) ,不要用SheetN 。

三、Activesheet 表示当前被选中的工作表。之前在“筛选”一节中讲过一个表述:Activesheet.Index ,此属性返回得到的数字,就等同于Sheets(N)中的N。表示当前表位于所有表中的序数。

还曾看到这么一种指代语法:Me,能指代当前的工作簿,当前工作表。但它使用有个前提,就是代码是写在“工作表”下的,ME就指代代码所在的那个工作表。(代码写在模块中,就不能这么用了)与Activesheet的差别:ME是指代固定的一个工作表,Activesheet是会变化的。

工作表对象的几个常用操作:1、增加工作表的语法:Worksheets.Add after:=Sheets(1);after:=Sheets(1) 意思是将新增的表放在第1张工作表后面。Worksheets.Add after:=Sheets(Sheets.Count) 语句意思:新增表,表放最后面,Sheets.Count是所有表的总数。还有个before参数,表示放在哪张表之前。Worksheets.add(after:=sheets(sheets.count)).name = "字符" 语句意思:新增的同时,表名为"字符"。

2、删除工作表的语法:Sheets(1).Delete 。删除之后,会自动将右侧工作表往左排;就是原来的Sheets(2)变成了Sheets(1),所以删除多个工作表时最好从右往左删。不会造成Sheets(N)中的N值变化。 注:删除操作会出现提示,弹出提示会导致VBA代码中断,所以最好先关闭提示,语句 Application.DisplayAlerts = False

3、复制工作表的语法:Sheets(2).Copy Before:=Sheets(2);语句意思:复制第2张表,放在原第2张表之前。原第2张表就成了Sheets(3)。After参数同增加工作表的语法。

附:工作簿的表达方式:

1、thisworkbook 当前运行的代码所在的工作簿

2、activeworkbook 当前活动工作簿

3、workbooks(“工作簿名“) 指定名称的工作簿

工作簿的几个常用语句,示例:

Workbooks.Open(完整路径+文件名); 打开某个工作簿

Workbooks.Add ;新增了工作簿

ActiveWorkbook.SaveAs(完整路径+文件名); 当前工作簿另存为

ActiveWorkbook.Close ;关闭当前的工作簿

注意写法 Workbooks与Workbook 。

我们的缺点麻烦您能提出,谢谢支持!

联系我们 网站地图