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

标签 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' 无法获取工作表函数类的查找属性”

最佳答案

当 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/

相关文章:

excel - 自动插入冒号(:) in multiple columns under the Options Explicit

excel - Excel 中的 VBA 代码随机停止执行。没有出现错误消息

excel - 比较具有相同单词变体的两个单元格

vba - 复制后没有粘贴Excel注释

excel - 将许多后继关系从 Excel 文件导入 MS Project

database - 如何使用 VBA 列出或枚举 MS Access 宏下的所有查询名称

excel - 如果范围包含值 > 8 的单元格,则 MsgBox

arrays - Excel VBA - 将数字数组的值移动一个常量而不循环

excel - 导出的 CSV 数据在 Excel 中无法正确显示

vba - 用户表单禁用所有字段