【问题标题】:Store workbooks in a collection or an array将工作簿存储在集合或数组中
【发布时间】:2019-12-14 09:57:58
【问题描述】:

我最近发布了一个关于如何“分组”几个打开的工作簿(不是所有工作簿)的问题。提到了几种技术,我认为所有这些我都可以发挥作用,但一种技术似乎对我来说很突出,因为这正是我所需要的。创建集合并将工作簿放入集合中。然后我可以根据需要在整个程序中引用这个集合。所以...我开始阅读/了解收藏。但是,有几篇文章将集合与数组进行了比较。这让我第二次猜测自己应该使用哪一个。我无法理解数组是否甚至可以存储“对象”?例如,一个数组可以存储几个“对象”吗?即:存储几个“工作簿”?

【问题讨论】:

  • 呃...好吧...所以...如果我知道我将 5 个工作簿放入此数组/集合中,并且它将始终是这 5 个工作簿并且不会改变。我应该使用数组吗?还是收藏?我将为集合/数组复制范围 D1:G1 中的每个工作簿做类似的事情并粘贴到某处......类似的东西
  • 使用对您来说最简单的方法。
  • 谢谢...我认为在这种情况下收集对我来说可能更容易...但我明天会尝试一些东西看看

标签: arrays excel vba object collections


【解决方案1】:

要将工作簿存储在一个数组中,我们可以创建一个工作簿数组:

Sub kjkj()

    Dim wkbks(1 To 4) As Workbook

    Set wkbks(1) = workbooks.Open(....)
    Set wkbks(2) = workbooks.Open(....)
    Set wkbks(3) = workbooks.Open(....)
    Set wkbks(4) = workbooks.Open(....)

    Dim i As Long
    For i = 1 To 4
        With wkbks(i)
            'do something
        End With
    Next i


End Sub

【讨论】:

  • 呃...好吧...所以...如果我知道我将 5 个工作簿放入此数组/集合中,并且它将始终是这 5 个工作簿并且不会改变。我应该使用数组吗?还是收藏?我将为集合/数组复制范围 D1:G1 中的每个工作簿做类似的事情并粘贴到某处......类似的东西
  • 这是一种偏好。
  • 谢谢...我认为在这种情况下收集对我来说可能更容易...但我明天会尝试一些东西看看
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-07
  • 1970-01-01
  • 1970-01-01
  • 2013-08-10
  • 1970-01-01
相关资源
最近更新 更多