Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 4171|回复: 19

[已解决]为什么没有效果呢 代码

[复制链接]
发表于 2014-3-1 10:04 | 显示全部楼层 |阅读模式
球大师  搭救
最佳答案
2014-3-1 10:45
  1. Sub 工序核对()
  2. Dim i As Long
  3. lrow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
  4. lrow2 = Sheet2.Cells(Rows.Count, 1).End(xlUp).Row
  5.     ar = Sheet1.Range("b2:c" & lrow)
  6.     br = Sheet2.Range("a1:a" & lrow2)
  7.         For i = 1 To UBound(br)
  8.             For j = 1 To UBound(ar)
  9.                 If br(i, 1) = ar(j, 2) Then
  10.                     br(i, 1) = ar(j, 1)
  11.                     GoTo 100
  12.                 End If
  13.             Next j
  14.              br(i, 1) = ""
  15. 100:
  16.         Next i
  17.     Sheet2.[b1].Resize(UBound(br)) = br
  18. End Sub

复制代码

2002.zip

9.3 KB, 阅读权限: 1, 下载次数: 11

发表于 2014-3-1 10:16 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2014-3-1 10:20 | 显示全部楼层
顺⑦.zì繎。 发表于 2014-3-1 10:16
有附件没说明。不知道你的需求

在表2中 核对表1的工亿 并记录表1的行号   不好意思忘了要求了
回复

使用道具 举报

发表于 2014-3-1 10:29 | 显示全部楼层
苗凱 发表于 2014-3-1 10:20
在表2中 核对表1的工亿 并记录表1的行号   不好意思忘了要求了

模拟几个结果,方便理解问题。
回复

使用道具 举报

 楼主| 发表于 2014-3-1 10:33 | 显示全部楼层
dsmch 发表于 2014-3-1 10:29
模拟几个结果,方便理解问题。

...........

2002.zip

7.06 KB, 下载次数: 6

回复

使用道具 举报

发表于 2014-3-1 10:34 | 显示全部楼层
  1.         For j = 1 To 85
  2.             If Sheets("Sheet1").Cells(i, 3) = Sheets("Sheet2").Cells(j, 1) Then
  3.                 Exit For
  4.             End If
  5.         Next j
  6.         If j = 85 Then
复制代码
这里逻辑有问题。本来你是要检测的,如果循环是正常结束的,J应该是86了,你改成if j=86试试。
回复

使用道具 举报

 楼主| 发表于 2014-3-1 10:38 | 显示全部楼层
hwc2ycy 发表于 2014-3-1 10:34
这里逻辑有问题。本来你是要检测的,如果循环是正常结束的,J应该是86了,你改成if j=86试试。

还是不行   斑竹在看看  。、、
回复

使用道具 举报

发表于 2014-3-1 10:40 | 显示全部楼层
结果已经有了,看看单元格有没有变化呀。
回复

使用道具 举报

发表于 2014-3-1 10:41 | 显示全部楼层
  1. Sub 工序核对()
  2.     Dim i As Long
  3.     n = Cells.Find("*", , , , 1, 2).Row
  4.     l = 2
  5.     For i = 2 To n
  6.         For j = 1 To 85
  7.             If Sheets("Sheet1").Cells(i, 3) = Sheets("Sheet2").Cells(j, 1) Then
  8.                 Exit For
  9.             End If
  10.         Next j
  11.         If j = 86 Then
  12.             Sheets("Sheet2").Cells(1, l) = i
  13.             l = l + 1
  14.         End If
  15.     Next i
  16.     MsgBox l
  17. End Sub
复制代码
l不是变成3了嘛,说明只有一条符合要求。
回复

使用道具 举报

 楼主| 发表于 2014-3-1 10:42 | 显示全部楼层
hwc2ycy 发表于 2014-3-1 10:40
结果已经有了,看看单元格有没有变化呀。

还是不行   不是这样的
QQ图片20140301104226.jpg
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-15 04:44 , Processed in 0.152198 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表