gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 22:03:33 27 4
gpt4 key购买 nike

使用 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

我非常感谢您的帮助!

谢谢。

谨此,

乔纳森

最佳答案

您在一些事情上略有偏差,所以希望以下内容有所帮助。

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

在模块顶部使用 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

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

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

关于arrays - Excel VBA - 将一行单元格值传递到数组,然后将该数组粘贴到单元格的相对引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14794556/

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