【问题标题】:add more than one worksheet to excel using for loops使用 for 循环将多个工作表添加到 Excel
【发布时间】:2016-02-07 06:35:16
【问题描述】:
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 激活最近创建的工作表?

【问题讨论】:

  • 您的问题到底是什么?并粘贴您的完整代码 - 即 UniqueItems 函数将使我们能够测试任何答案。

标签: excel vba


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-04
    • 1970-01-01
    • 2018-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 1970-01-01
    相关资源
    最近更新 更多