gpt4 book ai didi

arrays - VBA 根据电子表格中一行中保存的数据创建一个数组

转载 作者:行者123 更新时间:2023-12-03 07:50:25 27 4
gpt4 key购买 nike

我想从我指定的范围创建一个数组,其中该范围是行而不是列的一部分。

我已经尝试过:

Dim mCH As Variant

mCH = Range("A1:F1").Value

For n = 1 To UBound(mCH)
Debug.Print mCH(n, 1)
Next n

我希望将 6 个值打印到立即窗口,其中包含第 1 行前 6 列中的值,但该数组仅包含一个值,即 A1 中的值

当我将值排列在一列中并执行以下操作时,它会起作用:

Dim mCH As Variant

mCH = Range("A1:A6").Value

For n = 1 To UBound(mCH)
Debug.Print mCH(n, 1)
Next n

但我无法出于我的目的以这种方式排列数据,因为我想从前 6 列标题创建一个数组

最佳答案

循环遍历二维一基数组的列

  • 如果给定的单区域范围 ( rg ) 具有多个单元格,您只需使用以下命令即可将其值写入基于 1 的二维数组 ( Data ):

    Dim Data() As Variant: Data = rg.Value
  • 可以使用 UBound(Data) 检索该数组的行数(或第一维的上限(大小))。这是 UBound(Data, 1) 的缩写 等于 rg.Rows.Count .

  • 此数组的列数(或第二维的上限(大小))只能通过 UBound(Data, 2) 检索 等于 rg.Columns.Count .

  • 如果要检索第一行的元素,则需要在行保持 1 的情况下循环遍历各列。 :

     Dim c As Long

    For c = 1 To UBound(Data, 2)
    Debug.Print Data(1, c)
    Next c
  • 将前面的内容应用到您的示例中,您将使用以下内容:

     Dim mCH() As Variant: mCH = Range("A1:F1").Value

    Dim n As Long

    For n = 1 To UBound(mCH, 2)
    Debug.Print mCH(1, n)
    Next n

关于arrays - VBA 根据电子表格中一行中保存的数据创建一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77303306/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com