永发信息网

vba 使用高级筛选,将此工作薄sheet1表A列中的不重复值筛选出放在另一个工作薄sheet1r的A列里。

答案:3  悬赏:40  手机版
解决时间 2021-02-21 12:23
前提是,此工作薄sheet1表A列中的值很多,不知道都有些什么。只要把不重复的提出来就可以。结果必须要放到新的工作薄中。请高手老师不吝赐教!
最佳答案
Function MyFunction()
Dim I As Long, J As Long
With Workbooks.Add(xlWBATWorksheet) '新建表
For I = 1 To Range("A65536").End(xlUp).Row 'A列范围
For J = 1 To .Sheets(1).Range("A65536").End(xlUp).Row '新表 A 列范围
If Range("A" & I).Value = .Sheets(1).Range("A" & J).Value Then Exit For '有相等则退出
Next
If J > .Sheets(1).Range("A65536").End(xlUp).Row Then _
.Sheets(1).Range("A" & J).Value = Range("A" & I).Value '没有相等的则复制该值
Next
.Sheets(1).Range("A1").Delete xlUp '删除A1空单元格
.SaveAs ThisWorkbook.Path & "\" & "Newbook.xls" '重命名并保存
End With
End Function
全部回答
可以用vba实现,速度快,精度高,按照你的要求的vba代码如下: option explicit sub 告诉匹配()     dim i, k, v, arr, db     '扫描sheet1表,建立字典     arr = sheets("sheet1").range("a1").currentregion     set db = createobject("scripting.dictionary")     for i = 1 to ubound(arr)         k = trim(arr(i, 1))         v = arr(i, 2)         db(k) = v     next i     '扫描sheet2表,填写b列     sheets("sheet2").select     for i = 1 to sheets("sheet2").usedrange.rows.count         k = trim(cells(i, 1))         v = db(k)         cells(i, 1) = v     next i end sub
用VBA编写代码的思路与方法就是: 1)设置sheet1表单元格为“A1”,即行号为1; 2)读取sheet1表当前单元格数据 3)如果数据为空,就结束,否则执行4) 4)到sheet1r的A列里,从第1行开始到最后1行,一一比较; 如果不相同,就不复制到最后一行的下一个单元格; 如果相同,就结束比较,不复制 5)sheet1表当前行号+1 6)执行2)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
急求四篇作文:过年 压岁钱 我有我个性 春节
诺言还是抵不过时间,转眼间爱已经走到终点
大横道沟地址在哪,我要去那里办事
二氧化氯能否降解废水中的氨氮
三极管TO-220封装的J13009-2与E13009-2的管子
空压机设计是2立方储气罐,用1个2立方还是2个
【阻挡的近义词】阻挡的近义词是什么
window 10 怎么进入网络与共享中心
一名员工成为一名管理员人的得与失
表示好的意思词语大全
大佳园社区卫生服务站怎么去啊,有知道地址的
handsome的名词是什么
金立w909玩微信语音播放失败是怎么回事
青州农村商业银行24小时自助银行(亿隆分理处)
柳州市妇幼保健院中医科地址有知道的么?有点
推荐资讯
兰·V国际高端定制怎么去啊,有知道地址的么
变色硅胶蓝色硅胶和橙色硅胶那个变色快?为什
工程前期资料有哪些
xy刷机助手总显示设备正在连接中 然后没反应
男人讲物你物系我女友咩是什麼意思
新历和农历
2006年超级女声每个唱区前三名是谁
中国兰州牛肉面地址在什么地方,想过去办事
初二英语作文(翻译,80字左右)
幽灵庄园的秘密3在win10 64位系统上为什么打
台铃电动车中鲨七代价格及图片
两个字的微博名
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?