VBA按钮添加一个类别的不同记录

时间:2019-06-20 15:22:18

标签: excel vba

我有一个工作簿,用于整理不同客户端上的记录。一个工作表包含所有客户端的所有记录(数据表)。我想在工作簿中有另一个工作表(客户表),以提取单个客户的所有独特记录(将在该表中经过数据验证的输入单元格中)并将它们加载到表中(从第5行开始) 。对于每个客户,将有不同数量的记录要从数据表中返回。我希望有一种VBA“加载”按钮可以完成所有繁重的工作,因此您只需要选择要在输入单元格中看到的客户端即可。

我的代码有效,但是当ID列在数据表中按大到小排序时(因为在列表顶部输入新记录更容易),我得到一个错误。此外,确实设法加载的记录是不正确的并且是重复的。如何在不使VLookup出现问题的情况下将数据表ID列从大到小排序?

Sub Load_Client_Records()
    Dim Row As Long
    Dim Key As Long
    Dim VlookupResult As Variant
    Row = 5
    Key = 1
    For Each Client In Sheets("datasheet").Range("Master_IDs")
        VlookupResult = WorksheetFunction.VLookup(Client, Sheets("datasheet").Range("RecordTable"), 2)
        If (Sheets("client sheet").Range("Client_Name") = VlookupResult) Then
            Cells(Row, 1).Value = Key
            Cells(Row, 2).Value = VlookupResult
            Row = Row + 1
            Key = Key + 1
        End If
    Next
End Sub

在数据表ID列从大到小排序时运行时,出现错误: “运行时错误'1004'无法获取工作表函数类的查找属性”

1 个答案:

答案 0 :(得分:0)

当vlookup失败时会发生该错误-也许顶部有空白行或其他内容。如果您这样做:

On Error Resume Next
VlookupResult = WorksheetFunction.VLookup(Client, Sheets("datasheet").Range("RecordTable"), 2)
On Error GoTo 0

它应该绕过vlookup错误。