EXCEL命令中或者EXCEL VBA中有没有搜索出一个数值之后能列出此数值所在行的所有数值
3个回答
展开全部
Dim findvalue As Range
Dim r As Long
Dim str
str = '你想找的数值'
Set findvalue = sheet1.Rows(2).Find(what:=str) '这句是找第二行的数据找到第一个为 str的数值就停止
If Not findvalue Is Nothing Then
r = findvalue.row '找到了行,其它数据你应该知道怎么找了吧
End If
Dim r As Long
Dim str
str = '你想找的数值'
Set findvalue = sheet1.Rows(2).Find(what:=str) '这句是找第二行的数据找到第一个为 str的数值就停止
If Not findvalue Is Nothing Then
r = findvalue.row '找到了行,其它数据你应该知道怎么找了吧
End If
追问
这个命令我试用了一下,没反应,我的意思是我在表1里的A1输入一个数值,之后VBA里的命令就会自动检索表2的A列,在其中找出所有的与表1的A1数值相等的数值,在表1中的A列列出来,而且不光列出在表2A列的所有跟表1A1数值相等的数值,还要列出这些数值所在行里面的不等的所有数值,也就是说表2里面的A列的数值是一行数值的一个代表值,只要在表1输入一个表2A列的代表值,那么这个代表值在表2所代表行的所有数值会自动在表1的一行里自动列出
追答
你的追问和你的问题差的也太多了 简直就是两个问题
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
Application.ScreenUpdating = False
Dim dic, arr, i&, j&, r&
arr = Sheets(2).[A1].CurrentRegion
r = 2
For i = 1 To UBound(arr)
If arr(i, 1) = Target.Value Then
Sheets(1).Rows(r).Value = Sheets(2).Rows(i).Value
r = r + 1
End If
Next
Application.ScreenUpdating = True
End Sub
右击左下角 sheet1--查看代码 然后把这段代码复制到里面 在sheet1 A1 输入你要查的内容 用鼠标双击就可以了
展开全部
vlookup函数可以一个一个的返回,其实估计你也是要把所在行的数据一个一个的放在表格里
追问
这个是函数,那VBA里面有这样的命令吗?
追答
vba肯定能做啊,但是肯定不是一句话的命令了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
学习
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |