【发布时间】:2017-09-19 16:53:35
【问题描述】:
这个问题似乎被问了很多次,但我对此感到有些麻烦。该任务在列(假设为 A 列)中给出了一些单元格,在每个单元格中拆分文本(分隔符是空格“”)并在另一列(假设为 C 列)中打印所有获得的单词。
在阅读了一些答案后,我编写了以下代码:
Sub splitting()
Dim tmp As Collection
Dim i As Integer, j As Integer
For i = 0 To 3
tmp.Add split(Cells(i + 1, 1).Value, " ")
Next i
For j = 0 To tmp.Count
Cells(j + 1, 3).Value = tmp(j)
Next j
End Sub
这里我使用集合而不是数组来具有动态重新排列的能力(每次循环添加新项目)。我还假设文本仅在前四行中进行测试。
它给了我一个错误
运行时错误“91”:未设置对象变量或带块变量
我做错了什么,我应该如何以正确的方式做?
【问题讨论】:
-
也许你忘了
Set tmp = new collection? -
哪一行给出了错误
-
集合索引从 1 开始,而不是 0。错误在这里:
tmp(j) -
从 1 开始循环并删除 +1。所有都将被排序。
-
集合中的每个项目都包含一个列表,因此除了循环遍历集合之外,您还需要一个内部循环来获取列表的项目。