如何用函数或宏将excel中符合条件的数据行拷贝到另外的工作表里? 20
A列满足条件的记录相同的有很多,如何在另1个工作表输入A列的条件后,把所有A列与所输入条件相符的记录全部列示在新的工作表上Sub查询()Rows("2:2").Selec...
A列满足条件的记录相同的有很多,如何在另1个工作表输入A列的条件后,把所有A列与所输入条件相符的记录全部列示在新的工作表上
Sub 查询()
Rows("2:2").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveWindow.SmallScroll Down:=65536
Selection.ClearContents
Range("J1").Select
Selection.Copy
Sheets("价格表").Select
ActiveWindow.SmallScroll Down:=-12
Selection.AutoFilter Field:=1, Criteria1:="J1", Operator:=xlAnd
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("查询").Select
Range("A1").Select
ActiveSheet.Paste
Range("I4").Select
End Sub
我录的宏,我把Criteria1:="J1",里的J1改成实际的条件可以出来,但是J1我不确认会是什么,这里的错误在哪里 展开
Sub 查询()
Rows("2:2").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveWindow.SmallScroll Down:=65536
Selection.ClearContents
Range("J1").Select
Selection.Copy
Sheets("价格表").Select
ActiveWindow.SmallScroll Down:=-12
Selection.AutoFilter Field:=1, Criteria1:="J1", Operator:=xlAnd
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("查询").Select
Range("A1").Select
ActiveSheet.Paste
Range("I4").Select
End Sub
我录的宏,我把Criteria1:="J1",里的J1改成实际的条件可以出来,但是J1我不确认会是什么,这里的错误在哪里 展开
展开全部
兄弟或姐妹千万不要相信那些会编程的,我们要会还在这里玩什么啊。。你说的问题非常简单,用查找与引用最后一个函数,vlookup()这里面有四个量,第一叫你想找什么就是你的中这一的标识,第二个是从哪里找,当然得从一个全的表里找,第三个叫如果符合第一个条件那么显示第一列是几就写数据几。第四个就写0或false就可以了。非常实用的软件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你另一个工作表输入的条件是怎么样的?
你用高级筛选就做到你的需求了。
如果你一定要用VBA,可以用单元格事件完成,
以下代码在查询表的A1输入你的条件,就自动得到查询的结果(代码粘贴到查询表对应的编辑栏中)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim arr, brr(), x&, y&, i&, str1$
If Target.Address = "$A$1" Then
str1 = Target.Value
arr = Sheets("价格表").UsedRange
For x = 1 To UBound(arr)
If arr(x, 1) = str1 Then
i = i + 1
ReDim Preserve brr(1 To UBound(arr, 2), 1 To i)
For y = 1 To UBound(arr, 2)
brr(y, i) = arr(x, y)
Next y
End If
Next x
Range("A3").Resize(65533, 255).ClearContents
Range("A3").Resize(UBound(brr, 2), UBound(brr)) = Application.Transpose(brr)
End If
End Sub
你用高级筛选就做到你的需求了。
如果你一定要用VBA,可以用单元格事件完成,
以下代码在查询表的A1输入你的条件,就自动得到查询的结果(代码粘贴到查询表对应的编辑栏中)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim arr, brr(), x&, y&, i&, str1$
If Target.Address = "$A$1" Then
str1 = Target.Value
arr = Sheets("价格表").UsedRange
For x = 1 To UBound(arr)
If arr(x, 1) = str1 Then
i = i + 1
ReDim Preserve brr(1 To UBound(arr, 2), 1 To i)
For y = 1 To UBound(arr, 2)
brr(y, i) = arr(x, y)
Next y
End If
Next x
Range("A3").Resize(65533, 255).ClearContents
Range("A3").Resize(UBound(brr, 2), UBound(brr)) = Application.Transpose(brr)
End If
End Sub
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询