Excel精英培训网

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

[已解决]【求助】变更查找范围

[复制链接]
发表于 2009-11-8 16:04 | 显示全部楼层 |阅读模式

这是我自己学习写的一个宏,查找单元格F1部分匹配时的最后一个数据,在G1显示该数据距离B列最后一行的位置。

现在的问题出在:Range("A1:C" & R)这里

这里可以指定范围,写为:Range("A1:C" & R),Range("A:C")都不会出错

可是如果不是以A列开头查找,改句就显示为黄色,提示:运行是错误'13'    类型不匹配

如写为:Range("B1:C" & R),Range("B:C"),Range("C1:C" & R)等都出错。

注明:实际要查找的数据只在C列,且只有C列符合。

请老师指教。感谢了。

Sub Macro1()
Dim rng As Range, R&
R = [B65536].End(3).Row
[G1] = ""
Set rng = Range("A1:C" & R).Find(What:=Range("F" & 1), After:=Cells(1), LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False)
If Not rng Is Nothing Then Range("F" & 1).Offset(, 1) = R - rng.Row
End Sub

最佳答案
2009-11-8 17:07

将蓝色的删除再试一下看看

Sub Macro1()
Dim rng As Range, R&
R = [B65536].End(3).Row
[G1] = ""
Set rng = Range("A1:C" & R).Find(What:=Range("F" & 1), After:=Cells(1), LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False)
If Not rng Is Nothing Then Range("F" & 1).Offset(, 1) = R - rng.Row
End Sub

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2009-11-8 17:07 | 显示全部楼层    本楼为最佳答案   

将蓝色的删除再试一下看看

Sub Macro1()
Dim rng As Range, R&
R = [B65536].End(3).Row
[G1] = ""
Set rng = Range("A1:C" & R).Find(What:=Range("F" & 1), After:=Cells(1), LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False)
If Not rng Is Nothing Then Range("F" & 1).Offset(, 1) = R - rng.Row
End Sub

回复

使用道具 举报

 楼主| 发表于 2009-11-8 18:02 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-14 05:52 , Processed in 0.181858 second(s), 4 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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