Excel精英培训网

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

[已解决]find函数为什么找不到结果?

[复制链接]
发表于 2016-9-24 21:31 | 显示全部楼层 |阅读模式
我在sheet2里找和sheet1相同的内容的行,找到之后在那个数值后面写一个A


明明有相同值,但是用find命令就是找不到,这是为什么?


res = Sheet1.Range("A:A").find(WHAT:=Cells(i, 1).Value, LookAt:=xlWhole)


最佳答案
2016-9-25 11:08
  1. Sub find()
  2.     Dim res As Range
  3.     For i = 1 To [A65536].End(xlUp).Row
  4.         Set res = Sheet1.Range("A:A").find(WHAT:=Cells(i, 1).Value, LookAt:=xlWhole)
  5.         If Not res Is Nothing Then
  6.             Sheet2.Cells(res.Row, 2).Interior.Color = RGB(156, 189, 222)
  7.             Sheet2.Cells(res.Row, 2).Value = "A"
  8.         End If
  9.     Next
  10. End Sub
复制代码

Book1.zip

13.66 KB, 下载次数: 13

发表于 2016-9-24 22:29 | 显示全部楼层
是否这个意思:
Sub find()
    Dim res
    With Sheet2
        .Range("b:b").Clear
        For i = 1 To [A65536].End(xlUp).Row
            res = ""
            On Error Resume Next
            res = .Range("A:A").find(WHAT:=Cells(i, 1).Value, LookAt:=xlWhole).Row
            On Error GoTo 0
            If res <> "" Then
                .Cells(res, 2).Interior.Color = RGB(156, 189, 222)
                .Cells(res, 2).Value = "A"
            End If
        Next
    End With
End Sub
回复

使用道具 举报

发表于 2016-9-25 11:05 | 显示全部楼层
Find找到的是单元格,应该用 Set res=………………
如果要改变已找到的单元格的颜色,就可以用:res.Interior.Color =…………
如果要给已找到的单元格赋值,就可以: res.Value =…………
回复

使用道具 举报

发表于 2016-9-25 11:08 | 显示全部楼层    本楼为最佳答案   
  1. Sub find()
  2.     Dim res As Range
  3.     For i = 1 To [A65536].End(xlUp).Row
  4.         Set res = Sheet1.Range("A:A").find(WHAT:=Cells(i, 1).Value, LookAt:=xlWhole)
  5.         If Not res Is Nothing Then
  6.             Sheet2.Cells(res.Row, 2).Interior.Color = RGB(156, 189, 222)
  7.             Sheet2.Cells(res.Row, 2).Value = "A"
  8.         End If
  9.     Next
  10. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2016-9-25 13:26 | 显示全部楼层
苏子龙 发表于 2016-9-24 22:29
是否这个意思:
Sub find()
    Dim res

谢谢,是这个效果
但是没明白我原来错在什么地方?
回复

使用道具 举报

发表于 2016-9-25 13:30 | 显示全部楼层
whele 发表于 2016-9-25 13:26
谢谢,是这个效果
但是没明白我原来错在什么地方?

3楼已说,请看代码
回复

使用道具 举报

 楼主| 发表于 2016-9-25 13:35 | 显示全部楼层

我明白了

改成 Set res = Sheet2.Range("A:A").find(WHAT:=Cells(i, 1).Value, LookAt:=xlWhole) 就可以了

另外我把sheet2错写成sheet1了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 22:44 , Processed in 0.416182 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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