在我用VBA键入Excel数据验证列表时搜索建议

时间:2015-09-25 10:59:46

标签: excel excel-vba vba

我正在尝试创建一个搜索,因为我输入Excel文件,其中我有一个产品列表(在一个工作表上)和另一个上的形式发票。 Proforma在单元格中包含数据验证下拉列表,以从下拉菜单中选择产品。由于我的列表包含超过6000个项目,因此很难搜索所有项目以手动找到正确的项目。

我尝试了以下内容:

  Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lType As Long

If Target.Cells.Count > 1 Then Exit Sub

On Error Resume Next
lType = Target.Validation.Type
On Error GoTo 0

If lType = 3 Then
  With Sheets("Lists")
    .Range("CritProd").Cells(2, 1).Value = _
        "*" & Target.Offset(0, -1).Value & "*"
    .Range("ProdList").AdvancedFilter _
        Action:=xlFilterCopy, _
        CriteriaRange:=.Range("CritProd"), _
        CopyToRange:=.Range("extProd"), _
        Unique:=False
  End With
End If

End Sub

其中CritProd=Lists!B:B,其中包含我的所有产品名称,ProdList=OFFSET(Lists!$I$1,0,0,COUNTA(Lists!$I:$I),1)extProd为= Lists!$ I $ 1.

我还发现了一个YouTube视频,解释了如何在没有VBA的情况下进行操作,但它仅适用于一个单元格,在我的情况下,可能只有一个单元格。

1 个答案:

答案 0 :(得分:2)

我还在发票模板上创建了一个动态可搜索数据验证列表,以便将数据从产品页面带到主页。可以搜索我们用公式和一个小的 VBA 代码创建的数据验证列表。

单元格 A19 的公式:=OFFSET(Product!$A$2,MATCH($A19&"*",Products_1,0)-1,,COUNTIF(Products_1,$A19&"*"),)

Source to view sample file

enter image description here