【问题标题】:Using a collection and error handling to find new item numbers使用集合和错误处理来查找新的项目编号
【发布时间】:2017-11-10 08:10:16
【问题描述】:

我收到每月的库存销售报告。系统会定期添加一些项目,我通过它们的唯一 ID 号找到这些项目。我有一个 excel 文件,其中包含所有项目编号和描述以及一些其他属性的列表。

我的目标 - 下载一个包含上个月售出的所有商品的 Excel 文件。如果有新项目,请将其添加到现有列表中。

我正在使用 Siddharth Rout 在上一个答案中发布的内容,相关代码如下所示:

dim col as collection
Application.ScreenUpdating = False
With ItemList
    For x = 3 To lastrowIL
        On Error Resume Next
        col.Add .Range("A" & x).Value, CStr(.Range("A" & x).Value)
        On Error GoTo 0
    Next x
End With
With Monthly
.Range("AH3:AH" & lastrowM).Value = "New"
On Error Resume Next
    For y = 3 To lastrowM
        col.Add .Range("B" & y).Value, CStr(.Range("B" & y).Value)
        If Err.Number <> 0 Then .Range("AH" & y).Value = "Old"
        Err.Clear
    Next y
End With
Application.ScreenUpdating = True

这个概念是,如果您两次输入相同的项目 ID,将使用相同的密钥,并且会出现一条错误消息,将“新”更改为“旧”

问题:对集合的所有添加都导致错误,从而将所有“新”更改为“旧”

【问题讨论】:

    标签: excel search collections vba


    【解决方案1】:

    好的,我通过向 err.number 对象添加手表来解决问题。

    我没有将收藏声明为新收藏 (或声明集合,然后将其设置为新集合)

    修复了这个问题,我修复了“旧”与“新”的指示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-12
      • 1970-01-01
      • 1970-01-01
      • 2014-08-09
      • 2016-02-20
      • 1970-01-01
      相关资源
      最近更新 更多