使用for循环将多个工作表添加到excel

使用for循环将多个工作表添加到excel,excel,vba,Excel,Vba,UniqueItems()是一个函数,它以数组形式返回列中唯一项目的数量。目前,对于我正在处理的数据,列中有两个独特的项。如果我使用MsgBox()函数,我会得到两个唯一的项。这使我认为,在添加新工作表后,子例程以某种方式被转义 有什么想法吗 编辑: 换句话说,如何让excel激活最近创建的工作表 添加新工作表时,它将成为活动工作表。在您迭代一次之后。。。。您将在空工作表上评估uniqueitems 我会重构uniqueitems,以返回一个集合或字典,而不是您正在执行的操作 结果将类似于: F

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

有什么想法吗

编辑:


换句话说,如何让excel激活最近创建的工作表

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

我会重构
uniqueitems
,以返回一个集合或字典,而不是您正在执行的操作

结果将类似于:

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
功能将使我们能够测试任何答案。
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