【发布时间】:2014-07-28 07:43:26
【问题描述】:
我有一个 Excel 文件,其中 A:A 列是名称,B:B 列是相关月份。 同样(A,B):Tom JAN Tom JAN Tom NOV Tom DEC Jack SEP Jack DEC Jack AUG ...
我现在正在尝试遍历此内容。我已经通过使用这个“脚本”循环到列的(未知)结尾来克服第一个障碍。
Sub DoWhile()
Dim i As Long
Dim c As Collection
Set c = New Collection
c.Add Cells(1, 1), "Name"
c.Add Cells(1, 2), "Month"
c.Add Cells(1, 3), "Volume"
i = 2
With ActiveSheet
Do While i <= .Rows.Count
If .Cells(i, 1) <> "" Then
c.Add Cells(i, 1), "Name"
c.Add Cells(i, 2), "Month"
c.Add Cells(i, 3), "Volume"
MsgBox c.Item("Name")
MsgBox c.Item("Month")
MsgBox c.Item("Volume")
Else
Exit Do
End If
i = i + 1
Loop
End With
End Sub
问题: 运行时错误“457”: 此键已与此集合的元素相关联。
似乎我不允许每个键使用多个值。如何绕过这个问题?
用其他语言做这件事会很容易。我将创建一个包含相应列值的列表,并在该列表中循环,只要 list[i-1] == list[i] ...
有人可以帮我吗?
简而言之:
输入:
甲乙
汤姆·简
汤姆·马尔
约翰十一月
约翰十一月
约翰·德克
马克君
马克·简
...
输出应该是一个 excel 表格:
A B C D
汤姆 1 月 - 3 月
约翰 - - -
马克·扬 - - -
等等……
【问题讨论】: