【问题标题】:Why all elements in my array are the same?为什么我的数组中的所有元素都相同?
【发布时间】:2014-10-03 21:02:25
【问题描述】:

我有一个动态创建数组的功能,但是创建的数组中的元素都是一样的。所有元素都被最后一个覆盖。

这是 VBA 问题还是我做错了什么?有人可以帮忙吗?提前谢谢你。

For count = 1 To 2
    Set sheet = deviceBook.Worksheets.Item(1)
    Set find = sheet.range("A1", GetColName(sheet.UsedRange.Columns.count, sheet) & "1")
    With find   
    carrierClo = GetCellColumn(carrierTitle, sheet, find)   
    modelNoCol = GetCellColumn(modelNoTitle, sheet, find)
    End With
    For row = 2 To sheet.UsedRange.Rows.count
        If sheet.range(carrierClo & row).value <> ""
        And sheet.range(modelNoCol & row).value <> "" Then
            With plm
                .carrierName = sheet.range(carrierClo & row).value
                .modelNo = sheet.range(modelNoCol & row).value
                Set plms(UBound(plms)) = plm
                ReDim Preserve plms(UBound(plms) + 1)
            End With
        End If
    Next
Next

【问题讨论】:

  • 如果plm 是一个对象,您需要在每个循环中实例化一个新对象。如果是这种情况,请尝试将 Set plm = New *** 放在 With plm 之前。
  • 是的,在我将 plm 设置为新对象后,它可以正常工作。非常感谢!

标签: arrays vba excel


【解决方案1】:

正如 OP 问题的 cmets 所回答的那样:

如果 plm 是一个对象,您需要在每个周期实例化一个新对象。如果是这种情况,请尝试将 Set plm = New *** 放在 With plm 之前。 -- xificurC

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多