使用for循环添加多个工作表以使用Excel

时间:2012-01-28 03:01:02

标签: excel vba

For j = 1 To UniqueItems(ActiveSheet.Range(TrN_col & "2:" & TrN_col & LastTrN), True)
    With Workbook
        Worksheets.Add().Name = UniqueItems(ActiveSheet.Range(TrN_col & "2:" & TrN_col & LastTrN), False)(j)
    End With
Next j

UniqueItems()是一个函数,它将列中唯一项的数量作为数组返回。目前我正在使用的数据列中有两个独特的项目。如果我使用MsgBox()函数,我会得到两个独特的项目。这让我觉得在添加新工作表后,子程序以某种方式被转义。

有什么想法吗?

编辑:

换句话说,我如何获得excel来激活最近创建的工作表?

1 个答案:

答案 0 :(得分:1)

添加新工作表时,它将成为活动工作表。迭代一次....您将在空工作表上评估uniqueitems

我会重构uniqueitems来返回一个集合或字典,而不是你正在做的事情。

结果看起来像是:

Dim list as Dictionary

set list = UniqueItems(ActiveSheet.Range(TrN_col & "2:" & TrN_col & LastTrN))

For each key in list.keys
  worksheets.add().name = key
next