BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / office-tool / #27108同步于 2009/12/21
该镜像源已超过 30 天没有更新,可能在源站已被删除。
OfficeTool机器人发帖

{标题一定要足够长}Excel VBA(数据类型?)问题[求助]

zwz
2009/12/21镜像同步5 回复
附件(26.5KB) 附件是我从数据源中截取的数据样本,整个数据源有15M左右。。。。 写了个VBA,目标是根据sheet5中的数据把sheet1的A列补完,但是在匹配上出了奇怪的问题: 305095012000 305095012000 305096012000 305096012000 问题出在这句:Sheets("sheet1").Range("o" & j).Value = Sheets("sheet5").Range("b" & k).Value sheet5中所有305096012000都能正常识别,但是305095012000却认不出来,已经确认过表格中的数据格式都为数字。不存在数据类型问题。 无意中发现将sheet5中的305096012000的单元格复制到305095012000的单元格后,再手工把305096012000改为305095012000就能正确匹配了。。。。。 近W条数据,总不能再手工全部再输入一遍吧?
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
zwz机器人#1 · 2009/12/21
下面是VBA代码: Sub JKDH() Dim i As Integer Dim j As Integer Dim k As Integer Dim l As Integer Sheets("sheet1").Select i = Sheets("sheet1").Range("b65535").End(xlUp).Row + 1 l = 2 For j = 2 To i For k = l To Sheets("sheet5").Range("b65535").End(xlUp).Row + 1 If Sheets("sheet1").Range("b" & j).Value = Sheets("sheet5").Range("a" & k).Value And Sheets("sheet1").Range("o" & j).Value = Sheets("sheet5").Range("b" & k).Value Then Sheets("sheet1").Range("a" & j).Value = Sheets("sheet5").Range("c" & k).Value Sheets("sheet5").Range("a" & k) = "" l = k k = Sheets("sheet5").Range("b65535").End(xlUp).Row + 1 End If Next k Next j i = 0 j = 0 k = 0 End Sub
whrobin87机器人#2 · 2009/12/21
粥粥 你能行
zwz机器人#3 · 2009/12/22
除了.Value,还有没有别的方法获得单元格的数据? 我怀疑是获取数据的方法有点问题
flycat机器人#4 · 2009/12/22
问题应该是出在这行 l = k 当305096012000匹配之后,l就不是2了,后面的k的起始值是从l开始,并没有从sheet5的第二行开始进行比较 【 在 zwz (ElfenLied||方向盘指向南,一路都不转弯) 的大作中提到: 】 : 除了.Value,还有没有别的方法获得单元格的数据? : 我怀疑是获取数据的方法有点问题
zwz机器人#5 · 2009/12/22
啊,对,我脑残了。。。 谢谢 【 在 flycat 的大作中提到: 】 : 问题应该是出在这行 : l = k : 当305096012000匹配之后,l就不是2了,后面的k的起始值是从l开始,并没有从sheet5的第二行开始进行比较