首页 > 电脑

excel如何用vba实现查询

更新时间2021-10-31 18:03:09

表1:如下
excel如何用vba实现查询

表2中,A1单元格为男,要在表1中查询 到性别与表2中A1相同的所有数据,并显示在表2,不能覆盖表2中的A1单元格。
要实现结果如下图
excel如何用vba实现查询

如图,假设你的表1名称是Sheet1,表2名称是Sheet2。

按下Alt+F11调出VBA代码页,在Sheet2的代码页中输入下列代码即可。

这代码的作用是监视Sheet2中A1单元格的更改,当此单元格发生更改时,会自动刷新查询数据,可改为"男"或"女"或是为空等。

Private Sub Worksheet_Change(ByVal Target As Range)

  Dim I As Integer, J As Integer

  Dim S As String

  If Target.Address = "$A$1" Then

    '清空原数据

    I = 0

    Do

      I = I + 1

      If Len(Sheet2.Range("A" & I + 2)) = 0 Then Exit Do

    Loop

    Sheet2.Range("A3:E" & I + 2).ClearContents

    '刷新查询数据

    S = Target

    If S <> "" Then

      I = 1

      J = 2

      Do

        I = I + 1

        If Len(Sheet1.Range("A" & I)) = 0 Then Exit Do

        If Sheet1.Range("A" & I) = S Then

          J = J + 1

          Sheet2.Range("A" & J) = Sheet1.Range("A" & I)

          Sheet2.Range("B" & J) = Sheet1.Range("B" & I)

          Sheet2.Range("C" & J) = Sheet1.Range("C" & I)

          Sheet2.Range("D" & J) = Sheet1.Range("D" & I)

          Sheet2.Range("E" & J) = Sheet1.Range("E" & I)

        End If

      Loop

    End If

  End If

 End Sub

excel如何用vba实现查询

相关标签:excel

上一篇:依次挑选出符合条件的单元格数据

下一篇:按键精灵计数语句