excel问题,在Sheet1表中使用vba执行多条件查询,将多条符合条件的查询结果存入Sheet2,之后显示结果

我想建一个独立的窗体,在窗体内输入条件,然后查询,窗体建好了,可是代码老是写不对,请大侠帮帮忙吧

这是Sheet1表中的数据

这是我想要建立的窗体,只是按钮的代码总是写不好,请大侠帮帮忙吧

第1个回答  2014-08-30
对于VBA还有一定的研究,能不能把你的代码发出来,看一看问题出在哪儿?追问

Sub chazhao()
Dim i As Integer
For i = 1 To 5300
If Cells(i, 3) = TextBox_name.Text And Cells(i, 2) = TextBox_warning.Text And Cells(i, 1) = textbox_ Then m = Cells(i, 4)
End If

End Sub

头都大了,貌似还是不成

追答

你是在工作中进行的筛选么,把结果写到单元格?

为什么不直接在VBA中用命令完成筛选,与拷贝工作呢?

给你一段VBA启动筛选,复制的代码

Sub test()
    Dim ksr As Long
    Dim Nsh As Worksheet
    ksr = 3 '筛选开始行,表头+1
    With ActiveWorkbook.ActiveSheet
        .AutoFilterMode = False
        .Cells.EntireRow.Hidden = False
                .AutoFilterMode = False
                .Rows(ksr).AutoFilter
                 
                On Error Resume Next
                Sheets.Add.Name = "筛选工作表"
                Set Nsh = Sheets("筛选工作表")
                If Err.Number <> 0 Then ActiveSheet.Delete: Nsh.Cells.Delete: Err.Clear: On Error GoTo 0
                .Rows(ksr).AutoFilter Field:=1, Criteria1:="0" 'field1表示第1列,2表示第2列,Criteria1后面是筛选内容
                .Rows(ksr).AutoFilter Field:=2, Criteria1:="9"  'field1表示第1列,2表示第2列,Criteria1后面是筛选内容
                 
                .UsedRange.SpecialCells(xlCellTypeVisible).Copy Nsh.[A1]
        .Select
        .AutoFilterMode = False
    End With
End Sub

追问

谢谢你的热心,但这还不是我想要的结果,结果实在是在太乱了

追答

你需要改的内容就是这个里面
改成你的文本框的值
.Rows(ksr).AutoFilter Field:=1, Criteria1:="0" 'field1表示第1列,2表示第2列,Criteria1后面是筛选内容
.Rows(ksr).AutoFilter Field:=2, Criteria1:="9" 'field1表示第1列,2表示第2列,Criteria1后面是筛选内容

本回答被提问者和网友采纳
相似回答
大家正在搜