excel使用vba进行数据筛选
名字班级入学年份张三2班2002李四2班2003王五3班2002路六4班2005小花3班2005小莉2班2006小云4班2002如果我想在第二个空白表格sheet2中,筛...
名字 班级 入学年份
张三 2班 2002
李四 2班 2003
王五 3班 2002
路六 4班 2005
小花 3班 2005
小莉 2班 2006
小云 4班 2002
如果我想在第二个空白表格sheet2中,筛选出符合入学年份“2002”,班级“2班”,在A列中将符合的结果显示出来,该如何使用VBA表达?
写了下列代码,但是没有设置模块,请教代码是否有错,模块该如何设置?
Pubilc Sub Workbook_Open()
Sheets("sheet1").Select
Dim i, j, k As Integer
k = 1
i = 10
For j = 1 To i
If Sheets("Sheet1").cell(j, 2).Text = Sheets("Sheet1").cell(1, 7).Text Then
Sheets("sheet1").cell(j, 1).Select
Range(Cells(j, 1)).Select
Selection.Copy
Sheets("sheets1").cell(j, 9).Select
Range(cell(j, 9)).Select
ActiveSheet.Paste link:=True
k = k + 1
End If
Next j
Exit Sub
End Sub 展开
张三 2班 2002
李四 2班 2003
王五 3班 2002
路六 4班 2005
小花 3班 2005
小莉 2班 2006
小云 4班 2002
如果我想在第二个空白表格sheet2中,筛选出符合入学年份“2002”,班级“2班”,在A列中将符合的结果显示出来,该如何使用VBA表达?
写了下列代码,但是没有设置模块,请教代码是否有错,模块该如何设置?
Pubilc Sub Workbook_Open()
Sheets("sheet1").Select
Dim i, j, k As Integer
k = 1
i = 10
For j = 1 To i
If Sheets("Sheet1").cell(j, 2).Text = Sheets("Sheet1").cell(1, 7).Text Then
Sheets("sheet1").cell(j, 1).Select
Range(Cells(j, 1)).Select
Selection.Copy
Sheets("sheets1").cell(j, 9).Select
Range(cell(j, 9)).Select
ActiveSheet.Paste link:=True
k = k + 1
End If
Next j
Exit Sub
End Sub 展开
2个回答
展开全部
Sub tiqu()
Dim i, j, k As Integer
k = 1
i = 100
For j = 2 To i
If Sheets("Sheet1").cells(j, 2).Text = "2班" and Sheets("Sheet1").cells(j, 3).value= 2002 Then
Sheets("sheet1").cells(j, 1).Copy Sheets("sheets2").cells(k,1)
k = k + 1
End If
Next j
End Sub
在SHEET1中:
开发工具-插入-表单控件-按钮
按钮-右键-指定宏-新建-复制本段代码
Dim i, j, k As Integer
k = 1
i = 100
For j = 2 To i
If Sheets("Sheet1").cells(j, 2).Text = "2班" and Sheets("Sheet1").cells(j, 3).value= 2002 Then
Sheets("sheet1").cells(j, 1).Copy Sheets("sheets2").cells(k,1)
k = k + 1
End If
Next j
End Sub
在SHEET1中:
开发工具-插入-表单控件-按钮
按钮-右键-指定宏-新建-复制本段代码
追问
刚刚试了,已经插入代码,但是run的时候,里面说expected end sub,这个该如何解决?
追答
复制到你的模块中之后,你截图给我看看
展开全部
Private Sub CommandButton1_Click()
For r = 2 To Sheet1.[a65535].End(xlUp).Row
If Cells(r, "B") = "2班" And Cells(r, "C") = "2002" Then
N = N + 1
Sheet2.Cells(N, "A") = Sheet1.Cells(r, "A")
Sheet2.Cells(N, "B") = Sheet1.Cells(r, "B")
Sheet2.Cells(N, "C") = Sheet1.Cells(r, "C")
End If
Next
End Sub
For r = 2 To Sheet1.[a65535].End(xlUp).Row
If Cells(r, "B") = "2班" And Cells(r, "C") = "2002" Then
N = N + 1
Sheet2.Cells(N, "A") = Sheet1.Cells(r, "A")
Sheet2.Cells(N, "B") = Sheet1.Cells(r, "B")
Sheet2.Cells(N, "C") = Sheet1.Cells(r, "C")
End If
Next
End Sub
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询