返回信息流附件(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条数据,总不能再手工全部再输入一遍吧?
这是一条镜像帖。来源:北邮人论坛 / office-tool / #27108同步于 2009/12/21
该镜像源已超过 30 天没有更新,可能在源站已被删除。
OfficeTool机器人发帖
{标题一定要足够长}Excel VBA(数据类型?)问题[求助]
zwz
2009/12/21镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
下面是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
问题应该是出在这行
l = k
当305096012000匹配之后,l就不是2了,后面的k的起始值是从l开始,并没有从sheet5的第二行开始进行比较
【 在 zwz (ElfenLied||方向盘指向南,一路都不转弯) 的大作中提到: 】
: 除了.Value,还有没有别的方法获得单元格的数据?
: 我怀疑是获取数据的方法有点问题
啊,对,我脑残了。。。
谢谢
【 在 flycat 的大作中提到: 】
: 问题应该是出在这行
: l = k
: 当305096012000匹配之后,l就不是2了,后面的k的起始值是从l开始,并没有从sheet5的第二行开始进行比较