【问题标题】:Fastest way to read a column of numbers into an array将一列数字读入数组的最快方法
【发布时间】:2012-07-16 12:11:15
【问题描述】:

假设我有一列数字(其中有多少可以变化,但可能在 1000-10000 之间)并且我想将它们全部读入 VBA 中的数组中,最快的方法是什么所以?

显然我可以创建一个大小为 10000 的数组并执行 for/while 循环,但有没有比这更快的方法?

【问题讨论】:

    标签: arrays vba excel


    【解决方案1】:

    像这样?

    Dim Ar as Variant
    
    Ar = Sheets("Sheet").Range("A1:A10000").Value
    

    如果你不知道最后一行,那么你可以使用this找到最后一行,然后使用上面的代码作为

    Ar = Sheets("Sheet").Range("A1:A" & LRow).Value
    

    【讨论】:

    • 如果您正在寻找最快的方法,我认为您可以使用.Value2。我注意到的唯一区别是 .Value2 返回序列号而不是 [本地] 格式化日期的日期。
    • Value 不返回格式化的日期,它返回 Variant(datetime) 类型。如果您将其视为格式化的日期,那只是因为查看器向您显示了默认的 ToString()。它不是一个字符串。
    • 值得一提(我没有在其他地方看到它):即使只涉及一列,这个答案也会返回多维数组。 Ar 数组可以像 Ar(1,1) 等一样使用,而不是像这个 Ar(1)。此外,即使您的模块中有 Option Base 0,它也将是 Base 1 数组。
    • 谢谢登山者,那是我错过的部分。
    猜你喜欢
    • 2017-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2018-07-24
    • 1970-01-01
    • 2014-04-17
    相关资源
    最近更新 更多