【问题标题】:How to use an array in for-next to paste values to specific range?如何在 for-next 中使用数组将值粘贴到特定范围?
【发布时间】:2017-05-14 03:48:47
【问题描述】:

我对使用数组还很陌生,老实说,我不知道这是否是我需要的。下面是当前在我的宏中运行的一些代码,它在指定范围内以日期格式复制和粘贴一个月。 X 表示周期数(月)。请注意,以下所有内容都已简化,以便于理解。范围计算使用月份来确定范围,然后[数组中的值]部分是我需要帮助的地方。基本上,对于下面的每个月,数组中有 10 个值需要粘贴。例如,2017 年 1 月总共有 100 行数据,我需要数组中的 10 个值每个填充 10 行一月填充 100 行,然后移动到下个月。假设数组范围是“A1:A10”以供参考。非常感谢!

For x = 1 To 3
If Cells(3, 1) = "" Then
Range(Cells(3, 1), Cells(3162, 1)).Value = [value from array]
End If
Next x

【问题讨论】:

  • Range(Cells(3, 1), Cells(3162, 1)).Value = Application.Transpose(array)
  • 谢谢。我在哪里告诉它将数组中的每个值粘贴 10 倍?
  • 您需要遍历数组并粘贴每个值十次,然后向下移动十行并粘贴下一个。没有快速的方法可以做到这一点。

标签: arrays vba for-loop range next


【解决方案1】:

从这里开始:

    Sub foo()
Dim arr()
arr = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)
With ActiveSheet
    j = 3
    For i = 0 To UBound(arr)
        .Range(.Cells(j, 1), .Cells(j + 9, 1)).Value = arr(i)
        j = j + 10
    Next i
End With
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-21
    • 1970-01-01
    相关资源
    最近更新 更多