VBA实现Excel文本框模糊查询并复制结果

本文提供VBA代码示例,讲解如何利用Excel文本框实现对'销售明细表'的模糊查询,并将匹配结果复制到'销售记录管理'工作表。

功能:

  1. 清空'销售记录管理'工作表中第10行及以下的内容。2. 读取文本框'TextBox10'的值作为查询关键字。3. 在'销售明细表'的'E'列中进行模糊查询,查找包含关键字的行。4. 将匹配到的整行数据复制到'销售记录管理'工作表,从第10行开始粘贴。

**代码:**vbaPrivate Sub CommandButton2_Click()

'删除第10行及以下所有行    If Not IsEmpty(Sheets('销售记录管理').Range('A10')) Then        Sheets('销售记录管理').Rows('10:1048576').Delete Shift:=xlUp    Else        Sheets('销售记录管理').Rows('11:1048576').Delete Shift:=xlUp    End If

'获取模糊匹配的值    Dim searchValue As String    searchValue = Me.TextBox10.Value

'查找匹配的行数    Dim lastRow As Long    lastRow = Sheets('销售明细表').Cells(Sheets('销售明细表').Rows.Count, 'E').End(xlUp).Row    Dim matchRows As Collection    Set matchRows = New Collection    Dim i As Long    For i = 2 To lastRow '从第2行开始,跳过表头        If InStr(1, Sheets('销售明细表').Cells(i, 'E').Value, searchValue, vbTextCompare) > 0 Then            matchRows.Add i        End If    Next i        '将匹配的行复制到批次号汇总查询    Dim j As Long    For j = 1 To matchRows.Count        Dim matchRow As Long        matchRow = matchRows(j)        Sheets('销售明细表').Range('B' & matchRow & ':U' & matchRow).Copy Destination:=Sheets('销售记录管理').Range('B' & (j + 9))    Next j

End Sub

'清空所有文本框Private Sub CommandButton1_Click() With Me TextBox7.Value = '' TextBox8.Value = '' TextBox9.Value = '' TextBox10.Value = '' TextBox11.Value = '' TextBox12.Value = '' TextBox13.Value = '' TextBox14.Value = '' TextBox15.Value = '' TextBox16.Value = '' End WithEnd Sub

'关闭窗体Private Sub CommandButton3_Click() Unload MeEnd Sub

代码说明:

  1. 使用InStr函数进行模糊匹配,该函数返回搜索值在目标字符串中的位置,若大于0则匹配成功。2. vbTextCompare参数确保不区分大小写进行匹配。3. 使用Collection对象存储匹配的行号,方便后续复制操作。

通过以上代码,即可实现基于文本框输入的模糊查询功能,并将结果复制到指定工作表。

VBA实现Excel文本框模糊查询并复制结果

原文地址: https://www.cveoy.top/t/topic/bXPF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录