VBA编程,编码匹配,数组

[复制链接]
查看11 | 回复3 | 2010-5-13 10:09:42 | 显示全部楼层 |阅读模式
我每天要将当天的销售表格(甲),和另外的一个表格(乙)进行匹配,用vlookup函数。
甲的第一列是销售日期,第二列是商品编码,其他列可以忽略,表格长度大约是500行左右。乙表只有一列商品编码,大概是300行左右。
甲表格是每天不同的,乙表格是永远不变的。
匹配过程:用甲表格的商品编码和乙表格的商品编码进行匹配,配上的留下,配不上的删除整行。删除在甲表格进行,乙表格是不变的。
我的想法是,把乙表格的数据全部整合在vba里面(大概是300个商品编码),用个什么函数查找,能查找到的留下,查找不到的整行删除。
我在百度查了很多资料,想用find,可是做不成功。
简单的宏,我自己是会写的,但是这个有点难,搞不定了。
表的结构很简单:甲表a列是日期,b列是商品编码,乙表就是a列商品编码
没什么特别的。商品编码的长度:有9位,也有10位(比如:1051010187,104501005,116102200)

回复

使用道具 举报

千问 | 2010-5-13 10:09:42 | 显示全部楼层
Sub xx()Dim myarraymyarray = Array("记录1", "记录2", "记录3") '此处添加你那些记录,注意记录间用逗号隔开,并用双引号括起来m = 3 '此处指定记录的长度With Workbooks("甲表.xls").Sheets("表名") '此处指定表,改成你需要的x = Application.WorksheetFunction.CountA(.Range("a:a")) '此处对上面的指定表计数,看看上面的表有多少行For y = 1 To x'遍历指定表
For Z = 1 To m '遍历数组

回复

使用道具 举报

千问 | 2010-5-13 10:09:42 | 显示全部楼层
for i=1 to 350 //假设乙表有350行
Application.Windows(1).Activate //切换到甲表
a=cells(i,2) //假设甲表第2列为商品编码
Application.Windows(2).Activate //切换到乙表
set e=Cells.Find(What
回复

使用道具 举报

千问 | 2010-5-13 10:09:42 | 显示全部楼层
for i=1 to 300 //假设乙表有300行a=cells(i,1) //假设乙表第一列为商品编码Application.Windows(2).Activate //切换到甲表Cells.Find(What:=a).ActivateRows(ActiveCell.Row).Delete Shift:=xlUpApplication
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行