从(.find)或(vlookup)获取范围(“”)

时间:2017-10-30 05:05:36

标签: excel vba excel-vba

我的问题是:

我正在寻找一种方法来获得我从.Find(fecha)获得第一个结果的范围

Dim fecha As Date
Dim fechadepo As Date
Dim deposito As Double
fecha = Sheets("Ingresos").range("J4")
fechadepo = Sheets("Datos").range("P7:P1500").Find(fecha)
deposito = fechadepo

忽略最后一行,我要在此变量(deposito)中保存的真实内容是此单元旁边的单元格

我很想保存使用.Find(fecha)得到结果的范围,以便使用activecell.offset(0.2)并将信息保存到变量中,然后将这些变量保存到另一列的列中表,我看了几个小时,这不是徒劳,我已经学习了很多提高性能编码的技巧,避免使用(.select)(。active)(是的,我希望使用activecell。 ..)等。

标题如何说,我试图使用application.vlookup(),我也得到了结果,但我保留了不将结果保存到范围内,或保存我得到结果的范围变成一个变量,这是让我生气!

我非常感谢你的帮助,晚安

2 个答案:

答案 0 :(得分:0)

你关闭了。 .Find会返回Range个对象,但您会将其直接插入Date。这应该适合你:

Dim fecha As Date, fechadepo As Date
Dim rge_Find As Range, findAddr As String
fecha = Sheets("Ingresos").Range("J4")
Set rge_Find = Range("P7:P1500").Find(fecha)
fechadepo = rge_Find.Value
findAddr = rge_Find.Address

关于您对vlookup的评论,更高级的选项是索引 / 匹配组合,它提供的功能比基本{{1}更多}。请参阅thisthis

答案 1 :(得分:0)

Sheets("Datos").range("P7:P1500").Find(fecha).offset(0,2)

这是正确的答案!!

婷婷婷!  我们有一个胜利者! 感谢@jsotola

我现在感觉很傻......没问题,我在这个世界上很陌生