Excel VBA阵列到非连续命名范围

时间:2014-08-12 00:04:37

标签: arrays excel vba excel-vba range

我正在尝试将数组中的数据转换为非连续的命名范围。我最后得到的第一个数据单元是所有命名的范围单元格。我想我伤害了我的大脑。我正在查看我的代码,甚至不确定我为什么写它,所以我只是把那部分留下来。

我需要从A2复制数据:I2 然后粘贴到命名范围“blah”(B2,D2,F2,B4,D4,F4,B6,D6,F6)

有人能指出我正确的方向吗?它实际上比这更复杂,但我似乎无法让这部分工作。感谢您的任何见解。

2 个答案:

答案 0 :(得分:1)

以此为例:

Sub MoveData()
    Dim r1 As Range, r2 As Range, r As Range, _
        indx As Long, ary()
    Set r1 = Range("A2:I2")
    Set r2 = Range("B2,D2,F2,B4,D4,F4,B6,D6,F6")
    r2.Name = "blah"

    ary = r1

    indx = 1
    For Each r In Range("blah")
        r.Value = ary(1, indx)
        indx = indx + 1
    Next r
End Sub

答案 1 :(得分:0)

在excel单元格中有多种引用单元格的方法,它们是相对的或绝对的或半绝对的。你尝试过使用其他风格吗?

你可以在下一栏中使用这样的偏移函数吗? = OFFSET($ a2,0,2 *(行() - 1))