码迷,mamicode.com
首页 > 编程语言 > 详细

vba——清空整张表用于初始化

时间:2016-10-05 19:59:46      阅读:1013      评论:0      收藏:0      [点我收藏+]

标签:

今天在操作excel的过程中需要将整张表清空,然后填入所需的数据,因此这里我记录一下vba代码如何实现这一功能,这部分代码也会在代码仓库找到

功能:清空第 i 张表,然后从表1中选择所需的数据填入此表。

代码如下:

Sub SelectAndCopy()
‘清除sheets i 的所有内容,并将内容填入sheets i
Dim i&
i = 9
Sheets(i).Cells.ClearContents
‘Sheets(i)选择的是Sheets的对象,和Excel中的标签顺序一致
‘可用下面的select进行测试和对比,即可观察到结果
‘Sheets(3).Select

‘取出前500条目标设备的记录
Dim row&, col&, cnt&, str$
row = 2: col = 4: str = Sheet1.Cells(36, col)
cnt = 0
Do While Sheet1.Cells(row, 1) <> "" And cnt <= 500
    If Sheet1.Cells(row, col) Like str Then
        Sheet1.Rows(row).Copy Sheets(i).Cells(65536, 1).End(3).Offset(1)
        cnt = cnt + 1
    End If
    row = row + 1
Loop
MsgBox "完成"
End Sub

说明:

Sheets(i)返回了工作表对象,Sheets(i)的下标从1开始,直到最后一张表,其顺序对应如下:

技术分享

如果顺序变了,则Sheets(i)对应的表也就改变

 

与之不同的是:Sheet1是Excel的内建对象,因此这个对应顺序,不会随着我们调整顺序而随之变化,也就是说,Sheet1在这里永远都指的是 level1这张表,如图所示:

技术分享

此时,Sheets(1)对应的是iphone_train_1表

技术分享

 

If Sheet1.Cells(row, col) Like str Then
        Sheet1.Rows(row).Copy Sheets(i).Cells(65536, 1).End(3).Offset(1)

 Like运算符用在这里类似于正则表达式,表示如果单元格中出现了str字符串,则执行if语句

 

Sheet1.Rows(row).Copy Sheets(i).Cells(65536, 1).End(3).Offset(1)

这句我还解释不清,只知道这是复制到sheets(i)中最后一个空行的下一行。存疑

vba——清空整张表用于初始化

标签:

原文地址:http://www.cnblogs.com/luruiyuan/p/5932631.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!