【发布时间】: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 设置为新对象后,它可以正常工作。非常感谢!