Excel VBA - 将一行单元格值传递给数组,然后将该数组粘贴到单元格的相对引用

Jon*_*ton 8 arrays excel vba

使用Excel(2010)VBA,我试图复制(传递)一个恒定范围的单元格(其值重新计算)到一个数组.然后我试图将该数组传递给一个新的单元格范围,直接在它下面.完成此操作后,我想再次将常量范围的新值复制(传递)到数组中,并将这些新值传递到我之前传递的范围的正下方.

我知道这段代码非常糟糕(我是VBA中的数组新手).

Sub ARRAYER()

Dim anARRAY(5) As Variant

Number_of_Sims = 10

For i = 1 To Number_of_Sims
   anARRAY = Range("C4:G4")
   Range("C4").Select
   ActiveCell.Offset(Number_of_Sims, 0).Select
   ActiveCell = anARRAY
   Range("C4").Select
Next

End Sub
Run Code Online (Sandbox Code Playgroud)

我确实感谢你的帮助!

谢谢.

尊敬,

乔纳森

Cub*_*ase 9

你在这里稍微关注一些事情,所以希望以下有所帮助.

首先,您不需要选择范围来访问它们的属性,您可以只指定它们的地址等.其次,除非您操作范围内的值,否则实际上不需要将它们设置为变量.如果您确实想要操作值,则可以省略数组的边界,因为在定义范围时将设置它.

Option Explicit在模块顶部使用强制变量声明也是一种好习惯.

以下将完成您的工作:

Sub ARRAYER()
    Dim Number_of_Sims As Integer, i As Integer

    Number_of_Sims = 10

    For i = 1 To Number_of_Sims
       'Do your calculation here to update C4 to G4
       Range(Cells(4 + i, "C"), Cells(4 + i, "G")).Value = Range("C4:G4").Value
    Next
End Sub
Run Code Online (Sandbox Code Playgroud)

如果您确实想要操作数组中的值,请执行以下操作:

Sub ARRAYER()
    Dim Number_of_Sims As Integer, i As Integer
    Dim anARRAY as Variant

    Number_of_Sims = 10

    For i = 1 To Number_of_Sims
       'Do your calculation here to update C4 to G4
       anARRAY= Range("C4:G4").Value

       'You can loop through the array and manipulate it here

       Range(Cells(4 + i, "C"), Cells(4 + i, "G")).Value = anARRAY
    Next
End Sub
Run Code Online (Sandbox Code Playgroud)