我有一个整理不同客户记录的工作簿。一张工作表包含所有客户的所有记录(数据表)。我想在工作簿中有另一个工作表(客户表),它提取单个客户的所有独特记录(将在该表上的数据验证输入单元格中)并将它们加载到表中(从第 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' 无法获取工作表函数类的查找属性”
最佳答案
当 vlookup 失败时会发生该错误 - 也许顶部有一个空白行或其他东西。如果你这样做:
On Error Resume Next
VlookupResult = WorksheetFunction.VLookup(Client, Sheets("datasheet").Range("RecordTable"), 2)
On Error GoTo 0
它应该绕过 vlookup 错误。
关于excel - VBA按钮添加一个类别的不同记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56689221/