Excel精英培训网

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

[已解决]用find查地址,offset偏移查值

[复制链接]
发表于 2022-8-19 07:07 | 显示全部楼层 |阅读模式
我想用find查到第一个大米的地址,再用offset查到第一个大米N列的结存数,如果第一个结存数不够300,再查第二行大米结存数,请大神帮看看我的VBA为什么通不过?
最佳答案
2022-8-19 09:14
换一种方式或许更简单
Sub 查找()
Dim sh As Range
For Each sh In Sheet1.Range("f1:f10")
k = k + 1
If sh.Value = "大米" And sh.Offset(0, 5).Value >= 300 Then
Range("p" & k) = sh.Offset(0, 5).Value
End If
Next
End Sub

查找值.rar

8.2 KB, 下载次数: 7

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2022-8-19 09:14 | 显示全部楼层    本楼为最佳答案   
换一种方式或许更简单
Sub 查找()
Dim sh As Range
For Each sh In Sheet1.Range("f1:f10")
k = k + 1
If sh.Value = "大米" And sh.Offset(0, 5).Value >= 300 Then
Range("p" & k) = sh.Offset(0, 5).Value
End If
Next
End Sub

回复

使用道具 举报

发表于 2022-8-19 09:40 | 显示全部楼层
单说语法问题
①   Dim ss As Range
②   ss = Range("e:e").Find("DM00000110").Address(0, 0)
③    ss.Offset(0, 9).Value

============
②句中  Range("e:e").Find("DM00000110").Address(0, 0) 的结果 是 文本 , 是单元格地址的文本 , 而不是单元格
③句    ss.Offset(0, 9).Value     对 这个值没有任何操作 , 【赋值 , 比较 , msgbox , debug.print  , ... 】 ,  Vba  哪知道你要做啥





回复

使用道具 举报

发表于 2022-8-19 11:56 | 显示全部楼层
纯find不可能得到你想要的效果的。可以参考一下
查找.gif
回复

使用道具 举报

发表于 2022-8-19 15:06 | 显示全部楼层
G2{=MATCH(1=1,SUMIF(OFFSET(B2,,,ROW(1:15)),E2,OFFSET(C2,,,ROW(1:15)))>=E6,)+1

格式化 B2:D16=$B2=$E$2
10394.png
回复

使用道具 举报

 楼主| 发表于 2022-8-20 01:26 | 显示全部楼层
roserice 发表于 2022-8-19 09:14
换一种方式或许更简单
Sub 查找()
Dim sh As Range

非常感谢你帮我编好这个VBA,我试了一下非常满意。

同时也非常感谢另外几位的劳动付出。
回复

使用道具 举报

 楼主| 发表于 2022-8-20 01:29 | 显示全部楼层
哥儿- 发表于 2022-8-19 11:56
纯find不可能得到你想要的效果的。可以参考一下

你的劳动也非常不错,只是可惜只能设一个最佳,否则我也点你最佳的。
回复

使用道具 举报

 楼主| 发表于 2022-8-20 14:59 | 显示全部楼层
砂海 发表于 2022-8-19 09:40
单说语法问题
①   Dim ss As Range
②   ss = Range("e:e").Find("DM00000110").Address(0, 0)

谢谢你指正
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-30 12:24 , Processed in 0.153224 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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