【发布时间】:2019-07-09 18:52:37
【问题描述】:
我正在阅读一些这样组织的数据: (解释 | 细胞分裂) 属性 |价值 |单位 | [空] |属性 |价值 |单位 | [空的]... 我将这些数据放入一个集合中,然后在 Sub 的末尾打印该集合。
一些背景: 并不总是有单位,但如果它们存在,我希望它们连接到值。 也不总是有值,发生这种情况时我想跳到下一个属性,而不是记录没有值的属性。
Dim coll As New Collection
While j <= FinalColumn
'Check if the attribute actually has a value
If Len(Cells(row, (j + 1)).Value) <> 0 Then
coll.Add Cells(row, j).Value 'add attribute
Dim val As Variant
If Len(Cells(row, (j + 2)).Value) <> 0 Then
val = Cells(row, (j + 1)).Value & " " & Cells(row, j + 2).Value 'add value with units
Else
val = Cells(row, (j + 1)).Value 'add just the value if there are no units
End If
coll.Add val 'add value to collection
End If
j = j + 4 'move on to next attribute
Wend
我希望打印出来的线条是这样的:
[属性]
[价值]
[属性]
[价值]
...
但相反,我得到的是这样的:
[属性]
[价值]
[属性]
(空格)
[属性]
[价值]
(空格)
[属性]
...
注意到空格了吗?当值不存在时,它看起来与向集合中添加一些东西有关,但我无法弄清楚我哪里出错了。
【问题讨论】:
-
j = j + 4不应该是j = j + 2,因为你的属性是 2 分开的? -
@Cyril 电子表格中的属性相隔 4 个单元格(请参阅帖子顶部的 | |)